let private threeintpts (xint: float[]) (yint: float[]) (a1: float) (b1: float) (phi_1: float) (a2: float) (b2: float) (h2_tr: float) (k2_tr: float) (phi_2: float) (aa: float) (bb: float) (cc: float) (dd: float) (ee: float) (ff: float) : float =
let mutable tanpts = 0
let mutable tanindex = 0
- for i in 0..2 do
+ for i = 0 to 2 do
if istanpt xint.[i] yint.[i] a1 b2 aa bb cc dd ee ff = TANGENT_POINT
then
tanpts <- tanpts + 1
let theta = Array.zeroCreate 4
- for i in 0 .. 3 do
+ for i = 0 to 3 do
if abs xint.[i] > a1
then
xint.[i] <- if xint.[i] < 0.0 then -a1 else a1
theta.[i] <- if yint.[i] < 0.0 then 2.0 * Math.PI - acos (xint.[i] / a1) else acos (xint.[i] / a1)
#if DEBUG_LOG
- for k in 0..3 do
+ for k = 0 to 3 do
printf "k=%d: Theta = %f, xint=%f, yint=%f\n" k theta.[k] xint.[k] yint.[k]
#endif
- for j in 1 .. 3 do
+ for j = 1 to 3 do
let tmp0 = theta.[j]
let tmp1 = xint.[j]
let tmp2 = yint.[j]
#if DEBUG_LOG
printf "AFTER sorting\n"
- for k in 0..3 do
+ for k = 0 to 3 do
printf "k=%d: Theta = %f, xint=%f, yint=%f\n" k theta.[k] xint.[k] yint.[k]
#endif
let xint_tr = Array.zeroCreate 4
let yint_tr = Array.zeroCreate 4
- for i in 0..3 do
+ for i = 0 to 3 do
xint_tr.[i] <- (xint.[i] - h2_tr) * cosphi + (yint.[i] - k2_tr) * -sinphi
yint_tr.[i] <- (xint.[i] - h2_tr) * sinphi + (yint.[i] - k2_tr) * cosphi
let private cubicroots (p: float[]) (r: float[,]) =
if p.[0] <> 1.0 then
- for k in 1..3 do
+ for k = 1 to 3 do
p.[k] <- p.[k] / p.[0]
p.[0] <- 1.0
let s = p.[1] / 3.0
t <- d
r.[1, 1] <- t
- for k in 1..3 do
+ for k = 1 to 3 do
r.[2, k] <- 0.0
let private biquadroots (p: float[]) (r: float[,]) =
if p.[0] <> 1.0
then
- for k in 1..4 do
+ for k = 1 to 4 do
p.[k] <- p.[k] / p.[0]
p.[0] <- 1.0
let e = 0.25 * p.[1]
then
p.[2] <- c / b
quadroots p r
- for k in 1..2 do
- for j in 1..2 do
+ for k = 1 to 2 do
+ for j = 1 to 2 do
r.[j, k+2] <- r.[j, k]
p.[1] <- -p.[1]
p.[2] <- b
quadroots p r
- for k in 1..4 do
+ for k = 1 to 4 do
r.[1,k] <- r.[1,k] - e
quadExecuted <- true
then
p.[1] <- 0.0
else
- for k in 1..4 do
+ for k = 1 to 4 do
r.[1, k] <- -e
r.[2, k] <- 0.0
quadExecuted <- true
|]
#if DEBUG_LOG
- for i in 0..4 do
+ for i = 0 to 4 do
printf "cy[%d]=%f\n" i cy.[i]
#endif
let nroots =
if abs cy.[4] > EPS
then
- for i in 0 .. 3 do
+ for i = 0 to 3 do
py.[4-i] <- cy.[i] / cy.[4]
py.[0] <- 1.0
#if DEBUG_LOG
- for i in 0..4 do
+ for i to 0 to 4 do
printf "py[%d]=%f\n" i py.[i]
#endif
biquadroots py r
elif abs cy.[3] > EPS
then
- for i in 0..2 do
+ for i = 0 to 2 do
py.[3 - i] <- cy.[i] / cy.[3]
py.[0] <- 1.0
cubicroots py r
elif abs cy.[2] > EPS
then
- for i in 0..1 do
+ for i = 0 to 1 do
py.[2-i] <- cy.[i] / cy.[2]
py.[0] <- 1.0
quadroots py r
let ychk = Array.init nroots (fun _ -> Double.MaxValue)
let mutable nychk = 0
- for i in 1 .. nroots do
+ for i = 1 to nroots do
if abs r.[2, i] < EPS
then
ychk.[nychk] <- r.[1, i] * b1
#if DEBUG_LOG
printf "nychk=%d\n" ychk.Length
- for j in 0 .. ychk.Length - 1 do
+ for j = 0 to ychk.Length - 1 do
printf "\t j=%d, ychk=%f\n" j ychk.[j]
#endif