CONFIG
 TrackType: 7;
 TrackTolBeforeEG: 1e-6;
 TrackTolBeforeEG: 1e-6;
 FinalTol: 1e-10;
 SliceTolBeforeEG: 1e-6;
 SliceTolBeforeEG: 1e-6;
 SliceFinalTol: 1e-10;
 ODEPredictor: 2;
 SampleFactor: 0.1;
 SecurityMaxNorm: 1e6;
 MaxNorm: 1e6;
END;
INPUT
 variable_group v41,v42,v43,v51,v52,v53,v61,v62,v63,v71,v72,v73,v81,v82,v83,w41,w42,w43,w51,w52,w53,w61,w62,w63,w71,w72,w73,w81,w82,w83;
 function f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14;
 function F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14;
 constant a,v11,v12,v13,v21,v22,v23,v31,v32,v33;

 % sqrt(3)
 a = 3^(1/2);

 % 3 fixed locations
 v11 = 0;
 v12 = 0;
 v13 = 0;

 v21 = 1;
 v22 = 0;
 v23 = 0;

 v31 = 1/2;
 v32 = a/2;
 v33 = 0;

 % D_{1,4} = (v41 - v11)^2 + (v42 - v12)^2 + (v43 - v13)^2 - 1;
 f1 = v41^2 + v42^2 + v43^2 - 1;
 F1 = w41^2 + w42^2 + w43^2 - 1;

 % D_{2,4} - D_{1,4} = (v41 - v21)^2 + (v42 - v22)^2 + (v43 - v23)^2 - (v41 - v11)^2 - (v42 - v12)^2 - (v43 - v13)^2;
 f2 = 1 - 2*(v21*v41 + v22*v42 + v23*v43);
 F2 = 1 - 2*(v21*w41 + v22*w42 + v23*w43);

 % D_{1,5} = (v51 - v11)^2 + (v52 - v12)^2 + (v53 - v13)^2 - 1;
 f3 = v51^2 + v52^2 + v53^2 - 1;
 F3 = w51^2 + w52^2 + w53^2 - 1;

 % D_{3,5} - D_{1,5} = (v51 - v31)^2 + (v52 - v32)^2 + (v53 - v33)^2 - (v51 - v11)^2 - (v52 - v12)^2 - (v53 - v13)^2;
 f4 = 1 - 2*(v31*v51 + v32*v52 + v33*v53);
 F4 = 1 - 2*(v31*w51 + v32*w52 + v33*w53);

 % D_{4,5} = (v51 - v41)^2 + (v52 - v42)^2 + (v53 - v43)^2 - 1;
 f5 = (v51 - v41)^2 + (v52 - v42)^2 + (v53 - v43)^2 - 1;
 F5 = (w51 - w41)^2 + (w52 - w42)^2 + (w53 - w43)^2 - 1;

 % D_{2,6} = (v61 - v21)^2 + (v62 - v22)^2 + (v63 - v23)^2 - 1;
 f6 = (v61 - v21)^2 + (v62 - v22)^2 + (v63 - v23)^2 - 1;
 F6 = (w61 - v21)^2 + (w62 - v22)^2 + (w63 - v23)^2 - 1;

 % D_{3,6} - D_{2,6} = (v61 - v31)^2 + (v62 - v32)^2 + (v63 - v33)^2 - (v61 - v21)^2 - (v62 - v22)^2 - (v63 - v23)^2;
 f7 = v61*v21 + v62*v22 + v63*v23 - v61*v31 - v62*v32 - v63*v33;
 F7 = w61*v21 + w62*v22 + w63*v23 - w61*v31 - w62*v32 - w63*v33;

 % D_{4,6} = (v61 - v41)^2 + (v62 - v42)^2 + (v63 - v43)^2 - 1;
 f8 = (v61 - v41)^2 + (v62 - v42)^2 + (v63 - v43)^2 - 1;
 F8 = (w61 - w41)^2 + (w62 - w42)^2 + (w63 - w43)^2 - 1;

 % D_{3,7} = (v71 - v31)^2 + (v72 - v32)^2 + (v73 - v33)^2 - 1;
 f9 = (v71 - v31)^2 + (v72 - v32)^2 + (v73 - v33)^2 - 1;
 F9 = (w71 - v31)^2 + (w72 - v32)^2 + (w73 - v33)^2 - 1;

 % D_{5,7} = (v71 - v51)^2 + (v72 - v52)^2 + (v73 - v53)^2 - 1;
 f10= (v71 - v51)^2 + (v72 - v52)^2 + (v73 - v53)^2 - 1;
 F10= (w71 - w51)^2 + (w72 - w52)^2 + (w73 - w53)^2 - 1;

 % D_{6,7} = (v71 - v61)^2 + (v72 - v62)^2 + (v73 - v63)^2 - 1;
 f11= (v71 - v61)^2 + (v72 - v62)^2 + (v73 - v63)^2 - 1;
 F11= (w71 - w61)^2 + (w72 - w62)^2 + (w73 - w63)^2 - 1;

 % D_{4,8} = (v81 - v41)^2 + (v82 - v42)^2 + (v83 - v43)^2 - 1;
 f12= (v81 - v41)^2 + (v82 - v42)^2 + (v83 - v43)^2 - 1;
 F12= (w81 - w41)^2 + (w82 - w42)^2 + (w83 - w43)^2 - 1;

 % D_{5,8} = (v81 - v51)^2 + (v82 - v52)^2 + (v83 - v53)^2 - 1;
 f13= (v81 - v51)^2 + (v82 - v52)^2 + (v83 - v53)^2 - 1;
 F13= (w81 - w51)^2 + (w82 - w52)^2 + (w83 - w53)^2 - 1;

 % D_{6,8} = (v81 - v61)^2 + (v82 - v62)^2 + (v83 - v63)^2 - 1;
 f14= (v81 - v61)^2 + (v82 - v62)^2 + (v83 - v63)^2 - 1;
 F14= (w81 - w61)^2 + (w82 - w62)^2 + (w83 - w63)^2 - 1;

 % add distance constraint between 7,8 and 5,6
 function g1,g2;

 % D_{7,8} - D_{5',6'} = (v81 - v71)^2 + (v82 - v72)^2 + (v83 - v73)^2 - (w61 - w51)^2 - (w62 - w52)^2 - (w63 - w53)^2;
 g1 = (v81 - v71)^2 + (v82 - v72)^2 + (v83 - v73)^2 - (w61 - w51)^2 - (w62 - w52)^2 - (w63 - w53)^2;

 % D_{5,6} - D_{7',8'} = (v61 - v51)^2 + (v62 - v52)^2 + (v63 - v53)^2 - (w81 - w71)^2 - (w82 - w72)^2 - (w83 - w73)^2;
 g2 = (v61 - v51)^2 + (v62 - v52)^2 + (v63 - v53)^2 - (w81 - w71)^2 - (w82 - w72)^2 - (w83 - w73)^2; 

END;



