icfp12/task/bin2.c

444 lines
16 KiB
C

#include "task.h"
#include <math.h>
typedef union { gdouble d; guint64 i; } double_int;
static gboolean ovm_status;
const guint ovm_outs = 6, ovm_ins = 4;
static double_int v0, v2, v3, v15, v17, v27, v28, v29, v34, v38, v39, v43, v57, v60, v76, v78, v89, v92, v95, v104, v138, v141, v169, v172, v193, v198, v214, v271, v338, v343, v344, v350, v362, v372, v379, v380, v381, v382, v383, v384, v385, v386, v387, v388, v389, v390, v391, v392, v393, v394, v395, v396, v397, v398, v399, v400;
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 */
v15.i = G_GUINT64_CONSTANT(4611686018427387904); /* 2.000000 */
v17.i = G_GUINT64_CONSTANT(4652007308841189376); /* 1000.000000 */
v27.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v28.i = G_GUINT64_CONSTANT(4710731271397965824); /* 8357000.000000 */
v29.i = G_GUINT64_CONSTANT(4656528500654604288); /* 2004.000000 */
v34.i = G_GUINT64_CONSTANT(4656524102608093184); /* 2003.000000 */
v38.i = G_GUINT64_CONSTANT(13931955824604741632); /* -6357000.000000 */
v39.i = G_GUINT64_CONSTANT(4656519704561582080); /* 2002.000000 */
v43.i = G_GUINT64_CONSTANT(4656515306515070976); /* 2001.000000 */
v57.i = G_GUINT64_CONSTANT(4709657529573965824); /* 7357000.000000 */
v60.i = G_GUINT64_CONSTANT(4723801030825869312); /* 63570000.000000 */
v76.i = G_GUINT64_CONSTANT(4454720405870426065); /* 0.000000 */
v78.i = G_GUINT64_CONSTANT(4977561924064720455); /* 5999999999999999899336704.000000 */
v89.i = G_GUINT64_CONSTANT(13888206039281662492); /* -7377.809857 */
v92.i = G_GUINT64_CONSTANT(13881068685215932186); /* -2491.212075 */
v95.i = G_GUINT64_CONSTANT(13887705239773928485); /* -6922.335359 */
v104.i = G_GUINT64_CONSTANT(4708691161932365824); /* 6457000.000000 */
v138.i = G_GUINT64_CONSTANT(4708583787749965824); /* 6357000.000000 */
v141.i = G_GUINT64_CONSTANT(4708798536114765824); /* 6557000.000000 */
v169.i = G_GUINT64_CONSTANT(13885282996472059492); /* -4719.317909 */
v172.i = G_GUINT64_CONSTANT(13888686660972151467); /* -7814.932739 */
v193.i = G_GUINT64_CONSTANT(4664333202919152677); /* 6922.335359 */
v198.i = G_GUINT64_CONSTANT(13866341226678910608); /* -249.121207 */
v214.i = G_GUINT64_CONSTANT(4665380905641176256); /* 7875.215433 */
v271.i = G_GUINT64_CONSTANT(4607182418800017408); /* 1.000000 */
v338.i = G_GUINT64_CONSTANT(4677104761256804352); /* 50000.000000 */
v343.i = G_GUINT64_CONSTANT(4627730092099895296); /* 25.000000 */
v344.i = G_GUINT64_CONSTANT(4631530004285489152); /* 45.000000 */
v350.i = G_GUINT64_CONSTANT(4651127699538968576); /* 900.000000 */
v362.i = G_GUINT64_CONSTANT(4708583787749965824); /* 6357000.000000 */
v372.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v379.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v380.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v381.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v382.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v383.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v384.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v385.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v386.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v387.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v388.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v389.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v390.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v391.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v392.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v393.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v394.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v395.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v396.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v397.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v398.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v399.i = G_GUINT64_CONSTANT(0); /* 0.000000 */
v400.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, v16, v19, v20, v22, v24, v25, v26, v30, v31, v33, v35, v37, v40, v42, v44, v46, v48, v49, v51, v52, v53, v54, v56, v59, v62, v64, v66, v67, v69, v70, v71, v72, v73, v74, v75, v77, v80, v81, v82, v83, v84, v85, v86, v87, v88, v91, v94, v97, v99, v100, v101, v102, v103, v105, v106, v108, v109, v110, v112, v113, v114, v116, v117, v118, v120, v122, v124, v126, v128, v130, v131, v132, v133, v135, v137, v140, v143, v145, v147, v149, v151, v153, v154, v155, v156, v157, v158, v159, v160, v161, v162, v163, v164, v165, v166, v168, v171, v174, v176, v178, v180, v182, v184, v185, v186, v187, v188, v189, v190, v191, v192, v195, v197, v200, v202, v204, v205, v206, v207, v208, v209, v210, v211, v212, v213, v216, v218, v220, v222, v224, v226, v228, v230, v232, v233, v234, v235, v236, v237, v238, v239, v240, v241, v242, v243, v244, v245, v247, v248, v250, v251, v252, v253, v254, v255, v256, v257, v258, v259, v260, v261, v262, v263, v264, v265, v266, v267, v268, v269, v270, v273, v275, v277, v279, v281, v282, v283, v284, v285, v286, v287, v288, v289, v290, v291, v292, v293, v294, v295, v296, v297, v298, v299, v300, v301, v302, v303, v305, v307, v309, v311, v313, v315, v317, v319, v321, v322, v324, v325, v327, v328, v329, v330, v331, v332, v334, v336, v337, v340, v341, v342, v345, v346, v347, v348, v349, v351, v352, v354, v355, v356, v358, v359, v361, v363, v364, v365, v366, v367, v368, v369, v371;
v1.d = v400.d;
v4.d = v379.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 = v398.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;
v16.d = v399.d;
ovm_status = (v5.d == 0);
v19.d = ovm_status ? v17.d : v16.d;
v20.d = v19.d * v15.d;
ovm_status = (v12.d == 0);
v22.d = ovm_status ? v20.d : v19.d;
ovm_status = (v12.d == 0);
v24.d = ovm_status ? v19.d : v12.d;
v25.d = v396.d;
v26.d = v391.d;
v30.d = scenario;
v31.d = v30.d - v29.d;
ovm_status = (v31.d == 0);
v33.d = ovm_status ? v28.d : v3.d;
v35.d = v30.d - v34.d;
ovm_status = (v35.d == 0);
v37.d = ovm_status ? v27.d : v33.d;
v40.d = v30.d - v39.d;
ovm_status = (v40.d == 0);
v42.d = ovm_status ? v38.d : v37.d;
v44.d = v30.d - v43.d;
ovm_status = (v44.d == 0);
v46.d = ovm_status ? v27.d : v42.d;
ovm_status = (v5.d == 0);
v48.d = ovm_status ? v46.d : v26.d;
v49.d = v381.d;
ovm_status = (v5.d == 0);
v51.d = ovm_status ? v3.d : v49.d;
v52.d = v51.d - v48.d;
v53.d = v52.d * v52.d;
v54.d = v390.d;
ovm_status = (v31.d == 0);
v56.d = ovm_status ? v27.d : v3.d;
ovm_status = (v35.d == 0);
v59.d = ovm_status ? v57.d : v56.d;
ovm_status = (v40.d == 0);
v62.d = ovm_status ? v60.d : v59.d;
ovm_status = (v44.d == 0);
v64.d = ovm_status ? v28.d : v62.d;
ovm_status = (v5.d == 0);
v66.d = ovm_status ? v64.d : v54.d;
v67.d = v380.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 = v71.d + v53.d;
v73.d = sqrt(v72.d);
v74.d = v73.d * v73.d;
v75.d = v74.d * v73.d;
v77.d = v382.d;
ovm_status = (v5.d == 0);
v80.d = ovm_status ? v78.d : v77.d;
v81.d = v76.d * v80.d;
v82.d = (v75.d == 0) ? 0.0 : v81.d / v75.d;
v83.d = v52.d * v82.d;
v84.d = (v0.d == 0) ? 0.0 : v0.d / v0.d;
v85.d = v84.d * v84.d;
v86.d = (v15.d == 0) ? 0.0 : v85.d / v15.d;
v87.d = v83.d * v86.d;
v88.d = v394.d;
ovm_status = (v35.d == 0);
v91.d = ovm_status ? v89.d : v56.d;
ovm_status = (v40.d == 0);
v94.d = ovm_status ? v92.d : v91.d;
ovm_status = (v44.d == 0);
v97.d = ovm_status ? v95.d : v94.d;
ovm_status = (v5.d == 0);
v99.d = ovm_status ? v97.d : v88.d;
v100.d = v99.d * v84.d;
v101.d = v48.d + v100.d;
v102.d = v101.d + v87.d;
v103.d = v386.d;
v105.d = v29.d + v17.d;
v106.d = v30.d - v105.d;
ovm_status = (v106.d == 0);
v108.d = ovm_status ? v104.d : v3.d;
v109.d = v34.d + v17.d;
v110.d = v30.d - v109.d;
ovm_status = (v110.d == 0);
v112.d = ovm_status ? v27.d : v108.d;
v113.d = v39.d + v17.d;
v114.d = v30.d - v113.d;
ovm_status = (v114.d == 0);
v116.d = ovm_status ? v38.d : v112.d;
v117.d = v43.d + v17.d;
v118.d = v30.d - v117.d;
ovm_status = (v118.d == 0);
v120.d = ovm_status ? v27.d : v116.d;
ovm_status = (v31.d == 0);
v122.d = ovm_status ? v104.d : v120.d;
ovm_status = (v35.d == 0);
v124.d = ovm_status ? v27.d : v122.d;
ovm_status = (v40.d == 0);
v126.d = ovm_status ? v38.d : v124.d;
ovm_status = (v44.d == 0);
v128.d = ovm_status ? v27.d : v126.d;
ovm_status = (v5.d == 0);
v130.d = ovm_status ? v128.d : v103.d;
v131.d = v51.d - v130.d;
v132.d = v131.d * v131.d;
v133.d = v385.d;
ovm_status = (v106.d == 0);
v135.d = ovm_status ? v27.d : v3.d;
ovm_status = (v110.d == 0);
v137.d = ovm_status ? v28.d : v135.d;
ovm_status = (v114.d == 0);
v140.d = ovm_status ? v138.d : v137.d;
ovm_status = (v118.d == 0);
v143.d = ovm_status ? v141.d : v140.d;
ovm_status = (v31.d == 0);
v145.d = ovm_status ? v27.d : v143.d;
ovm_status = (v35.d == 0);
v147.d = ovm_status ? v28.d : v145.d;
ovm_status = (v40.d == 0);
v149.d = ovm_status ? v138.d : v147.d;
ovm_status = (v44.d == 0);
v151.d = ovm_status ? v141.d : v149.d;
ovm_status = (v5.d == 0);
v153.d = ovm_status ? v151.d : v133.d;
v154.d = v69.d - v153.d;
v155.d = v154.d * v154.d;
v156.d = v155.d + v132.d;
v157.d = sqrt(v156.d);
v158.d = v157.d * v157.d;
v159.d = v158.d * v157.d;
v160.d = (v159.d == 0) ? 0.0 : v81.d / v159.d;
v161.d = v131.d * v160.d;
v162.d = in[3];
v163.d = (v84.d == 0) ? 0.0 : v162.d / v84.d;
v164.d = v163.d + v161.d;
v165.d = v164.d * v86.d;
v166.d = v389.d;
ovm_status = (v110.d == 0);
v168.d = ovm_status ? v95.d : v135.d;
ovm_status = (v114.d == 0);
v171.d = ovm_status ? v169.d : v168.d;
ovm_status = (v118.d == 0);
v174.d = ovm_status ? v172.d : v171.d;
ovm_status = (v31.d == 0);
v176.d = ovm_status ? v27.d : v174.d;
ovm_status = (v35.d == 0);
v178.d = ovm_status ? v95.d : v176.d;
ovm_status = (v40.d == 0);
v180.d = ovm_status ? v169.d : v178.d;
ovm_status = (v44.d == 0);
v182.d = ovm_status ? v172.d : v180.d;
ovm_status = (v5.d == 0);
v184.d = ovm_status ? v182.d : v166.d;
v185.d = v184.d * v84.d;
v186.d = v130.d + v185.d;
v187.d = v186.d + v165.d;
v188.d = v187.d - v102.d;
v189.d = v188.d * v188.d;
v190.d = v70.d * v82.d;
v191.d = v190.d * v86.d;
v192.d = v393.d;
ovm_status = (v31.d == 0);
v195.d = ovm_status ? v193.d : v3.d;
ovm_status = (v35.d == 0);
v197.d = ovm_status ? v27.d : v195.d;
ovm_status = (v40.d == 0);
v200.d = ovm_status ? v198.d : v197.d;
ovm_status = (v44.d == 0);
v202.d = ovm_status ? v27.d : v200.d;
ovm_status = (v5.d == 0);
v204.d = ovm_status ? v202.d : v192.d;
v205.d = v204.d * v84.d;
v206.d = v66.d + v205.d;
v207.d = v206.d + v191.d;
v208.d = v154.d * v160.d;
v209.d = in[2];
v210.d = (v84.d == 0) ? 0.0 : v209.d / v84.d;
v211.d = v210.d + v208.d;
v212.d = v211.d * v86.d;
v213.d = v388.d;
ovm_status = (v106.d == 0);
v216.d = ovm_status ? v214.d : v3.d;
ovm_status = (v110.d == 0);
v218.d = ovm_status ? v27.d : v216.d;
ovm_status = (v114.d == 0);
v220.d = ovm_status ? v169.d : v218.d;
ovm_status = (v118.d == 0);
v222.d = ovm_status ? v27.d : v220.d;
ovm_status = (v31.d == 0);
v224.d = ovm_status ? v214.d : v222.d;
ovm_status = (v35.d == 0);
v226.d = ovm_status ? v27.d : v224.d;
ovm_status = (v40.d == 0);
v228.d = ovm_status ? v169.d : v226.d;
ovm_status = (v44.d == 0);
v230.d = ovm_status ? v27.d : v228.d;
ovm_status = (v5.d == 0);
v232.d = ovm_status ? v230.d : v213.d;
v233.d = v232.d * v84.d;
v234.d = v153.d + v233.d;
v235.d = v234.d + v212.d;
v236.d = v235.d - v207.d;
v237.d = v236.d * v236.d;
v238.d = v237.d + v189.d;
v239.d = sqrt(v238.d);
v240.d = v25.d + v239.d;
v241.d = v163.d * v163.d;
v242.d = v210.d * v210.d;
v243.d = v242.d + v241.d;
v244.d = sqrt(v243.d);
v245.d = v244.d - v3.d;
ovm_status = (v245.d == 0);
v247.d = ovm_status ? v240.d : v3.d;
v248.d = v239.d - v17.d;
ovm_status = (v248.d < 0);
v250.d = ovm_status ? v247.d : v3.d;
v251.d = v51.d - v102.d;
v252.d = v251.d * v251.d;
v253.d = v69.d - v207.d;
v254.d = v253.d * v253.d;
v255.d = v254.d + v252.d;
v256.d = sqrt(v255.d);
v257.d = v256.d * v256.d;
v258.d = v257.d * v256.d;
v259.d = (v258.d == 0) ? 0.0 : v81.d / v258.d;
v260.d = v251.d * v259.d;
v261.d = v260.d + v83.d;
v262.d = (v15.d == 0) ? 0.0 : v261.d / v15.d;
v263.d = v262.d * v84.d;
v264.d = v99.d + v263.d;
v265.d = v253.d * v259.d;
v266.d = v265.d + v190.d;
v267.d = (v15.d == 0) ? 0.0 : v266.d / v15.d;
v268.d = v267.d * v84.d;
v269.d = v204.d + v268.d;
v270.d = v392.d;
ovm_status = (v31.d == 0);
v273.d = ovm_status ? v271.d : v3.d;
ovm_status = (v35.d == 0);
v275.d = ovm_status ? v271.d : v273.d;
ovm_status = (v40.d == 0);
v277.d = ovm_status ? v271.d : v275.d;
ovm_status = (v44.d == 0);
v279.d = ovm_status ? v271.d : v277.d;
ovm_status = (v5.d == 0);
v281.d = ovm_status ? v279.d : v270.d;
v282.d = v51.d - v187.d;
v283.d = v282.d * v282.d;
v284.d = v69.d - v235.d;
v285.d = v284.d * v284.d;
v286.d = v285.d + v283.d;
v287.d = sqrt(v286.d);
v288.d = v287.d * v287.d;
v289.d = v288.d * v287.d;
v290.d = (v289.d == 0) ? 0.0 : v81.d / v289.d;
v291.d = v282.d * v290.d;
v292.d = v291.d + v161.d;
v293.d = (v15.d == 0) ? 0.0 : v292.d / v15.d;
v294.d = v163.d + v293.d;
v295.d = v294.d * v84.d;
v296.d = v184.d + v295.d;
v297.d = v284.d * v290.d;
v298.d = v297.d + v208.d;
v299.d = (v15.d == 0) ? 0.0 : v298.d / v15.d;
v300.d = v210.d + v299.d;
v301.d = v300.d * v84.d;
v302.d = v232.d + v301.d;
v303.d = v387.d;
ovm_status = (v106.d == 0);
v305.d = ovm_status ? v271.d : v3.d;
ovm_status = (v110.d == 0);
v307.d = ovm_status ? v271.d : v305.d;
ovm_status = (v114.d == 0);
v309.d = ovm_status ? v271.d : v307.d;
ovm_status = (v118.d == 0);
v311.d = ovm_status ? v271.d : v309.d;
ovm_status = (v31.d == 0);
v313.d = ovm_status ? v271.d : v311.d;
ovm_status = (v35.d == 0);
v315.d = ovm_status ? v271.d : v313.d;
ovm_status = (v40.d == 0);
v317.d = ovm_status ? v271.d : v315.d;
ovm_status = (v44.d == 0);
v319.d = ovm_status ? v271.d : v317.d;
ovm_status = (v5.d == 0);
v321.d = ovm_status ? v319.d : v303.d;
v322.d = v384.d;
ovm_status = (v5.d == 0);
v324.d = ovm_status ? v3.d : v322.d;
v325.d = v383.d;
ovm_status = (v5.d == 0);
v327.d = ovm_status ? v3.d : v325.d;
v328.d = v4.d + v0.d;
v329.d = v102.d - v187.d;
v330.d = v207.d - v235.d;
v331.d = v395.d;
v332.d = v331.d + v0.d;
ovm_status = (v245.d == 0);
v334.d = ovm_status ? v332.d : v3.d;
ovm_status = (v248.d < 0);
v336.d = ovm_status ? v334.d : v3.d;
v337.d = v397.d;
ovm_status = (v5.d == 0);
v340.d = ovm_status ? v338.d : v337.d;
v341.d = v244.d * v84.d;
v342.d = v340.d - v341.d;
v345.d = (v338.d == 0) ? 0.0 : v342.d / v338.d;
v346.d = v345.d * v344.d;
v347.d = v7.d + v346.d;
v348.d = v347.d + v343.d;
v349.d = v348.d * v15.d;
v351.d = (v84.d == 0) ? 0.0 : v350.d / v84.d;
v352.d = v351.d - v336.d;
ovm_status = (v352.d < 0);
v354.d = ovm_status ? v349.d : v3.d;
v355.d = v342.d - v3.d;
v356.d = v372.d - v0.d;
ovm_status = (v355.d < 0);
v358.d = ovm_status ? v356.d : v354.d;
v359.d = v338.d - v341.d;
ovm_status = (v359.d < 0);
v361.d = ovm_status ? v356.d : v358.d;
v363.d = v187.d - v51.d;
v364.d = v363.d * v363.d;
v365.d = v235.d - v69.d;
v366.d = v365.d * v365.d;
v367.d = v366.d + v364.d;
v368.d = sqrt(v367.d);
v369.d = v368.d - v362.d;
ovm_status = (v369.d < 0);
v371.d = ovm_status ? v356.d : v361.d;
out[0] = v371.d;
out[1] = v342.d;
out[2] = v284.d;
out[3] = v282.d;
out[4] = v330.d;
out[5] = v329.d;
v379.d = v328.d;
v380.d = v69.d;
v381.d = v51.d;
v382.d = v80.d;
v383.d = v327.d;
v384.d = v324.d;
v385.d = v235.d;
v386.d = v187.d;
v387.d = v321.d;
v388.d = v302.d;
v389.d = v296.d;
v390.d = v207.d;
v391.d = v102.d;
v392.d = v281.d;
v393.d = v269.d;
v394.d = v264.d;
v395.d = v336.d;
v396.d = v250.d;
v397.d = v342.d;
v398.d = v24.d;
v399.d = v22.d;
v400.d = v14.d;
}