icfp12/task/bin1.c

305 lines
11 KiB
C

#include "task.h"
#include <math.h>
typedef union { gdouble d; guint64 i; } double_int;
static gboolean ovm_status;
const guint ovm_outs = 5, ovm_ins = 4;
static double_int v0, v2, v3, v16, v19, v27, v28, v31, v36, v38, v43, v47, v54, v55, v60, v78, v81, v84, v96, v99, v111, v114, v117, v133, v189, v214, v219, v220, v226, v238, v242, v248, v249, v250, v251, v252, v253, v254, v255, v256, v257, v258, v259, v260, v261, v262, v263, v264, v265;
void ovm_init() {
ovm_status = FALSE;
v0.i = G_GUINT64_CONSTANT(4607182418800017408); /* 1.000000 */
v2.i = G_GUINT64_CONSTANT(4629137466983448576); /* 30.000000 */
v3.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v16.i = G_GUINT64_CONSTANT(4652007308841189376); /* 1000.000000 */
v19.i = G_GUINT64_CONSTANT(4611686018427387904); /* 2.000000 */
v27.i = G_GUINT64_CONSTANT(4607632778762754458); /* 1.100000 */
v28.i = G_GUINT64_CONSTANT(4676027789617397760); /* 42164.000000 */
v31.i = G_GUINT64_CONSTANT(4652042493213278208); /* 1004.000000 */
v36.i = G_GUINT64_CONSTANT(4609434218613702656); /* 1.500000 */
v38.i = G_GUINT64_CONSTANT(4652033697120256000); /* 1003.000000 */
v43.i = G_GUINT64_CONSTANT(4652024901027233792); /* 1002.000000 */
v47.i = G_GUINT64_CONSTANT(4652016104934211584); /* 1001.000000 */
v54.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v55.i = G_GUINT64_CONSTANT(4708691161932365824); /* 6457000.000000 */
v60.i = G_GUINT64_CONSTANT(13931955824604741632); /* -6357000.000000 */
v78.i = G_GUINT64_CONSTANT(4710731271397965824); /* 8357000.000000 */
v81.i = G_GUINT64_CONSTANT(4708583787749965824); /* 6357000.000000 */
v84.i = G_GUINT64_CONSTANT(4708798536114765824); /* 6557000.000000 */
v96.i = G_GUINT64_CONSTANT(4977561924064720455); /* 5999999999999999899336704.000000 */
v99.i = G_GUINT64_CONSTANT(4454720405870426065); /* 0.000000 */
v111.i = G_GUINT64_CONSTANT(13887705239773928485); /* -6922.335359 */
v114.i = G_GUINT64_CONSTANT(13885282996472059492); /* -4719.317909 */
v117.i = G_GUINT64_CONSTANT(13888686660972151467); /* -7814.932739 */
v133.i = G_GUINT64_CONSTANT(13888752942495952064); /* -7875.215433 */
v189.i = G_GUINT64_CONSTANT(4607182418800017408); /* 1.000000 */
v214.i = G_GUINT64_CONSTANT(4666723172467343360); /* 10000.000000 */
v219.i = G_GUINT64_CONSTANT(4627730092099895296); /* 25.000000 */
v220.i = G_GUINT64_CONSTANT(4631530004285489152); /* 45.000000 */
v226.i = G_GUINT64_CONSTANT(4651127699538968576); /* 900.000000 */
v238.i = G_GUINT64_CONSTANT(4708583787749965824); /* 6357000.000000 */
v242.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v248.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v249.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v250.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v251.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v252.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v253.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v254.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v255.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v256.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v257.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v258.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v259.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v260.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v261.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v262.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v263.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v264.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v265.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
}
void ovm_step(guint scenario, gdouble *__restrict__ in, gdouble *__restrict__ out) {
double_int v1, v4, v5, v7, v8, v9, v11, v12, v14, v15, v18, v20, v22, v24, v25, v26, v29, v30, v32, v33, v35, v37, v39, v41, v42, v44, v46, v48, v50, v52, v53, v57, v59, v62, v64, v66, v67, v69, v70, v71, v72, v74, v75, v77, v80, v83, v86, v88, v89, v90, v91, v92, v93, v94, v95, v98, v100, v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, v113, v116, v119, v121, v122, v123, v124, v125, v126, v127, v128, v129, v130, v131, v132, v135, v137, v139, v141, v143, v144, v145, v146, v147, v148, v149, v150, v151, v152, v153, v155, v156, v157, v158, v159, v160, v161, v163, v164, v166, v167, v168, v169, v170, v171, v172, v173, v174, v175, v176, v177, v178, v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v191, v193, v195, v197, v199, v200, v202, v203, v205, v206, v207, v208, v210, v212, v213, v216, v217, v218, v221, v222, v223, v224, v225, v227, v228, v230, v231, v232, v234, v235, v237, v239, v241;
v1.d = v265.d;
v4.d = v248.d;
v5.d = v4.d - v3.d;
ovm_status = (v5.d == 0);
v7.d = ovm_status ? v2.d : v1.d;
v8.d = v7.d - v0.d;
v9.d = v263.d;
ovm_status = (v5.d == 0);
v11.d = ovm_status ? v0.d : v9.d;
v12.d = v11.d - v0.d;
ovm_status = (v12.d == 0);
v14.d = ovm_status ? v8.d : v7.d;
v15.d = v264.d;
ovm_status = (v5.d == 0);
v18.d = ovm_status ? v16.d : v15.d;
v20.d = v18.d * v19.d;
ovm_status = (v12.d == 0);
v22.d = ovm_status ? v20.d : v18.d;
ovm_status = (v12.d == 0);
v24.d = ovm_status ? v18.d : v12.d;
v25.d = v260.d;
v26.d = v262.d;
v29.d = v28.d * v16.d;
v30.d = (v27.d == 0) ? 0.0 : v29.d / v27.d;
v32.d = scenario;
v33.d = v32.d - v31.d;
ovm_status = (v33.d == 0);
v35.d = ovm_status ? v30.d : v3.d;
v37.d = (v36.d == 0) ? 0.0 : v29.d / v36.d;
v39.d = v32.d - v38.d;
ovm_status = (v39.d == 0);
v41.d = ovm_status ? v37.d : v35.d;
v42.d = (v19.d == 0) ? 0.0 : v29.d / v19.d;
v44.d = v32.d - v43.d;
ovm_status = (v44.d == 0);
v46.d = ovm_status ? v42.d : v41.d;
v48.d = v32.d - v47.d;
ovm_status = (v48.d == 0);
v50.d = ovm_status ? v29.d : v46.d;
ovm_status = (v5.d == 0);
v52.d = ovm_status ? v50.d : v26.d;
v53.d = v255.d;
ovm_status = (v33.d == 0);
v57.d = ovm_status ? v55.d : v3.d;
ovm_status = (v39.d == 0);
v59.d = ovm_status ? v54.d : v57.d;
ovm_status = (v44.d == 0);
v62.d = ovm_status ? v60.d : v59.d;
ovm_status = (v48.d == 0);
v64.d = ovm_status ? v54.d : v62.d;
ovm_status = (v5.d == 0);
v66.d = ovm_status ? v64.d : v53.d;
v67.d = v250.d;
ovm_status = (v5.d == 0);
v69.d = ovm_status ? v3.d : v67.d;
v70.d = v69.d - v66.d;
v71.d = v70.d * v70.d;
v72.d = v249.d;
ovm_status = (v5.d == 0);
v74.d = ovm_status ? v3.d : v72.d;
v75.d = v254.d;
ovm_status = (v33.d == 0);
v77.d = ovm_status ? v54.d : v3.d;
ovm_status = (v39.d == 0);
v80.d = ovm_status ? v78.d : v77.d;
ovm_status = (v44.d == 0);
v83.d = ovm_status ? v81.d : v80.d;
ovm_status = (v48.d == 0);
v86.d = ovm_status ? v84.d : v83.d;
ovm_status = (v5.d == 0);
v88.d = ovm_status ? v86.d : v75.d;
v89.d = v74.d - v88.d;
v90.d = v89.d * v89.d;
v91.d = v90.d + v71.d;
v92.d = sqrt(v91.d);
v93.d = v92.d * v92.d;
v94.d = v93.d * v92.d;
v95.d = v251.d;
ovm_status = (v5.d == 0);
v98.d = ovm_status ? v96.d : v95.d;
v100.d = v99.d * v98.d;
v101.d = (v94.d == 0) ? 0.0 : v100.d / v94.d;
v102.d = v70.d * v101.d;
v103.d = in[3];
v104.d = (v0.d == 0) ? 0.0 : v0.d / v0.d;
v105.d = (v104.d == 0) ? 0.0 : v103.d / v104.d;
v106.d = v105.d + v102.d;
v107.d = v104.d * v104.d;
v108.d = (v19.d == 0) ? 0.0 : v107.d / v19.d;
v109.d = v106.d * v108.d;
v110.d = v258.d;
ovm_status = (v39.d == 0);
v113.d = ovm_status ? v111.d : v77.d;
ovm_status = (v44.d == 0);
v116.d = ovm_status ? v114.d : v113.d;
ovm_status = (v48.d == 0);
v119.d = ovm_status ? v117.d : v116.d;
ovm_status = (v5.d == 0);
v121.d = ovm_status ? v119.d : v110.d;
v122.d = v121.d * v104.d;
v123.d = v66.d + v122.d;
v124.d = v123.d + v109.d;
v125.d = v124.d - v69.d;
v126.d = v125.d * v125.d;
v127.d = v89.d * v101.d;
v128.d = in[2];
v129.d = (v104.d == 0) ? 0.0 : v128.d / v104.d;
v130.d = v129.d + v127.d;
v131.d = v130.d * v108.d;
v132.d = v257.d;
ovm_status = (v33.d == 0);
v135.d = ovm_status ? v133.d : v3.d;
ovm_status = (v39.d == 0);
v137.d = ovm_status ? v54.d : v135.d;
ovm_status = (v44.d == 0);
v139.d = ovm_status ? v114.d : v137.d;
ovm_status = (v48.d == 0);
v141.d = ovm_status ? v54.d : v139.d;
ovm_status = (v5.d == 0);
v143.d = ovm_status ? v141.d : v132.d;
v144.d = v143.d * v104.d;
v145.d = v88.d + v144.d;
v146.d = v145.d + v131.d;
v147.d = v146.d - v74.d;
v148.d = v147.d * v147.d;
v149.d = v148.d + v126.d;
v150.d = sqrt(v149.d);
v151.d = v150.d - v52.d;
v152.d = v3.d - v151.d;
v153.d = v151.d - v3.d;
ovm_status = (v153.d < 0);
v155.d = ovm_status ? v152.d : v151.d;
v156.d = v25.d + v155.d;
v157.d = v105.d * v105.d;
v158.d = v129.d * v129.d;
v159.d = v158.d + v157.d;
v160.d = sqrt(v159.d);
v161.d = v160.d - v3.d;
ovm_status = (v161.d == 0);
v163.d = ovm_status ? v156.d : v3.d;
v164.d = v155.d - v16.d;
ovm_status = (v164.d < 0);
v166.d = ovm_status ? v163.d : v3.d;
v167.d = v69.d - v124.d;
v168.d = v167.d * v167.d;
v169.d = v74.d - v146.d;
v170.d = v169.d * v169.d;
v171.d = v170.d + v168.d;
v172.d = sqrt(v171.d);
v173.d = v172.d * v172.d;
v174.d = v173.d * v172.d;
v175.d = (v174.d == 0) ? 0.0 : v100.d / v174.d;
v176.d = v167.d * v175.d;
v177.d = v176.d + v102.d;
v178.d = (v19.d == 0) ? 0.0 : v177.d / v19.d;
v179.d = v105.d + v178.d;
v180.d = v179.d * v104.d;
v181.d = v121.d + v180.d;
v182.d = v169.d * v175.d;
v183.d = v182.d + v127.d;
v184.d = (v19.d == 0) ? 0.0 : v183.d / v19.d;
v185.d = v129.d + v184.d;
v186.d = v185.d * v104.d;
v187.d = v143.d + v186.d;
v188.d = v256.d;
ovm_status = (v33.d == 0);
v191.d = ovm_status ? v189.d : v3.d;
ovm_status = (v39.d == 0);
v193.d = ovm_status ? v189.d : v191.d;
ovm_status = (v44.d == 0);
v195.d = ovm_status ? v189.d : v193.d;
ovm_status = (v48.d == 0);
v197.d = ovm_status ? v189.d : v195.d;
ovm_status = (v5.d == 0);
v199.d = ovm_status ? v197.d : v188.d;
v200.d = v253.d;
ovm_status = (v5.d == 0);
v202.d = ovm_status ? v3.d : v200.d;
v203.d = v252.d;
ovm_status = (v5.d == 0);
v205.d = ovm_status ? v3.d : v203.d;
v206.d = v4.d + v0.d;
v207.d = v259.d;
v208.d = v207.d + v0.d;
ovm_status = (v161.d == 0);
v210.d = ovm_status ? v208.d : v3.d;
ovm_status = (v164.d < 0);
v212.d = ovm_status ? v210.d : v3.d;
v213.d = v261.d;
ovm_status = (v5.d == 0);
v216.d = ovm_status ? v214.d : v213.d;
v217.d = v160.d * v104.d;
v218.d = v216.d - v217.d;
v221.d = v214.d - v218.d;
v222.d = (v214.d == 0) ? 0.0 : v221.d / v214.d;
v223.d = v222.d * v220.d;
v224.d = v7.d + v223.d;
v225.d = v224.d + v219.d;
v227.d = (v104.d == 0) ? 0.0 : v226.d / v104.d;
v228.d = v227.d - v212.d;
ovm_status = (v228.d < 0);
v230.d = ovm_status ? v225.d : v3.d;
v231.d = v218.d - v3.d;
v232.d = v242.d - v0.d;
ovm_status = (v231.d < 0);
v234.d = ovm_status ? v232.d : v230.d;
v235.d = v214.d - v217.d;
ovm_status = (v235.d < 0);
v237.d = ovm_status ? v232.d : v234.d;
v239.d = v150.d - v238.d;
ovm_status = (v239.d < 0);
v241.d = ovm_status ? v232.d : v237.d;
out[0] = v241.d;
out[1] = v218.d;
out[2] = v169.d;
out[3] = v167.d;
out[4] = v52.d;
v248.d = v206.d;
v249.d = v74.d;
v250.d = v69.d;
v251.d = v98.d;
v252.d = v205.d;
v253.d = v202.d;
v254.d = v146.d;
v255.d = v124.d;
v256.d = v199.d;
v257.d = v187.d;
v258.d = v181.d;
v259.d = v212.d;
v260.d = v166.d;
v261.d = v218.d;
v262.d = v52.d;
v263.d = v24.d;
v264.d = v22.d;
v265.d = v14.d;
}