Update from HH
[Flyspeck/.git] / glpk / sphere.ml
1 (* code automatically generated from Parse_ineq.ocaml_code *)
2
3 module Sphere_math = struct
4
5 let sqrt = Pervasives.sqrt
6
7 let pi = 4.0 *. atan(1.0);;
8 let  sqrt2   =  sqrt (2.) ;;
9
10
11 let  sqrt8   =  sqrt (8.) ;;
12
13
14 let  delta_x (x1) (x2) (x3) (x4) (x5) (x6)  = ((x1 *. (x4 *. ((-. x1) +. (x2 +. ((x3 -.  x4) +. (x5 +. x6)))))) +. ((x2 *. (x5 *. ((x1 -.  x2) +. (x3 +. ((x4 -.  x5) +. x6))))) +. (((((x3 *. (x6 *. (x1 +. ((x2 -.  x3) +. (x4 +. (x5 -.  x6)))))) -.  (x2 *. (x3 *. x4))) -.  (x1 *. (x3 *. x5))) -.  (x1 *. (x2 *. x6))) -.  (x4 *. (x5 *. x6)))));;
15
16
17 let  delta_y (y1) (y2) (y3) (y4) (y5) (y6)  =  delta_x ((y1 *. y1)) ((y2 *. y2)) ((y3 *. y3)) ((y4 *. y4)) ((y5 *. y5)) ((y6 *. y6)) ;;
18
19
20 let  delta_x4 (x1) (x2) (x3) (x4) (x5) (x6)  = ((((-. x2) *. x3) -.  (x1 *. x4)) +. ((x2 *. x5) +. (((x3 *. x6) -.  (x5 *. x6)) +. (x1 *. ((-. x1) +. (x2 +. ((x3 -.  x4) +. (x5 +. x6))))))));;
21
22
23 let  delta_x6 (x1) (x2) (x3) (x4) (x5) (x6)  = ((((-. x1) *. x2) -.  (x3 *. x6)) +. ((x1 *. x4) +. (((x2 *. x5) -.  (x4 *. x5)) +. (x3 *. ((-. x3) +. (x1 +. ((x2 -.  x6) +. (x4 +. x5))))))));;
24
25
26 let  ups_x (x1) (x2) (x6)  = (((((-. x1) *. x1) -.  (x2 *. x2)) -.  (x6 *. x6)) +. ((2. *. (x1 *. x6)) +. ((2. *. (x1 *. x2)) +. (2. *. (x2 *. x6)))));;
27
28
29 let  eta_x (x1) (x2) (x3)  =  sqrt (((x1 *. (x2 *. x3)) /.  ups_x (x1) (x2) (x3) )) ;;
30
31
32 let  eta_y (y1) (y2) (y3)  =  eta_x ((y1 *. y1)) ((y2 *. y2)) ((y3 *. y3)) ;;
33
34
35 let  dih_x (x1) (x2) (x3) (x4) (x5) (x6)  = (( pi   /. 2.) +. atan2 ((-.  delta_x4 (x1) (x2) (x3) (x4) (x5) (x6) )) ( sqrt ((4. *. (x1 *.  delta_x (x1) (x2) (x3) (x4) (x5) (x6) ))) )  );;
36
37
38 let  dih_y (y1) (y2) (y3) (y4) (y5) (y6)  =  dih_x ((y1 *. y1)) ((y2 *. y2)) ((y3 *. y3)) ((y4 *. y4)) ((y5 *. y5)) ((y6 *. y6)) ;;
39
40
41 let  dih2_y (y1) (y2) (y3) (y4) (y5) (y6)  =  dih_y (y2) (y1) (y3) (y5) (y4) (y6) ;;
42
43
44 let  dih3_y (y1) (y2) (y3) (y4) (y5) (y6)  =  dih_y (y3) (y1) (y2) (y6) (y4) (y5) ;;
45
46
47 let  sol_x (x1) (x2) (x3) (x4) (x5) (x6)  = ( dih_x (x1) (x2) (x3) (x4) (x5) (x6)  +. ( dih_x (x2) (x3) (x1) (x5) (x6) (x4)  +. ( dih_x (x3) (x1) (x2) (x6) (x4) (x5)  -.   pi  )));;
48
49
50 let  sol_y (y1) (y2) (y3) (y4) (y5) (y6)  = ( dih_y (y1) (y2) (y3) (y4) (y5) (y6)  +. ( dih_y (y2) (y3) (y1) (y5) (y6) (y4)  +. ( dih_y (y3) (y1) (y2) (y6) (y4) (y5)  -.   pi  )));;
51
52
53 let  interp (x1) (y1) (x2) (y2) (x)  = (y1 +. ((x -.  x1) *. ((y2 -.  y1) /. (x2 -.  x1))));;
54
55
56 let  ly (y)  =  interp (2.) (1.) (2.52) (0.) (y) ;;
57
58
59 let  const1   = ( sol_y (2.) (2.) (2.) (2.) (2.) (2.)  /.  pi  );;
60
61
62 let  rho (y)  = (1. +. ( const1   -.  ( const1   *.  ly (y) )));;
63
64
65 let  rhazim (y1) (y2) (y3) (y4) (y5) (y6)  = ( rho (y1)  *.  dih_y (y1) (y2) (y3) (y4) (y5) (y6) );;
66
67
68 let  lnazim (y1) (y2) (y3) (y4) (y5) (y6)  = ( ly (y1)  *.  dih_y (y1) (y2) (y3) (y4) (y5) (y6) );;
69
70
71 let  taum (y1) (y2) (y3) (y4) (y5) (y6)  = (( sol_y (y1) (y2) (y3) (y4) (y5) (y6)  *. (1. +.  const1  )) -.  ( const1   *. ( lnazim (y1) (y2) (y3) (y4) (y5) (y6)  +. ( lnazim (y2) (y3) (y1) (y5) (y6) (y4)  +.  lnazim (y3) (y1) (y2) (y6) (y4) (y5) ))));;
72
73
74 let  arclength (a) (b) (c)  = (( pi   /. 2.) +. atan2 ((((c *. c) -.  (a *. a)) -.  (b *. b))) ( sqrt ( ups_x ((a *. a)) ((b *. b)) ((c *. c)) ) )  );;
75
76 end;;