Skip to content

Instantly share code, notes, and snippets.

@rrnewton
Created March 2, 2014 04:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rrnewton/9301953 to your computer and use it in GitHub Desktop.
Save rrnewton/9301953 to your computer and use it in GitHub Desktop.
Full log of fission 2 way on nbody example
This file has been truncated, but you can view the full file.
[rrnewton@RN-rMBP ~/accelerate/array-dsl-benchmarks/accelerate/nbody/fission1] (master)$ DEBUG=4 ACC_FISSION_FACTOR=2 time ./bench-nbody-fission1.exe 10
NBODY size on command line: N="10"
NBODY: Reading requested prefix of input file... Just 10
Read 100000 lines from file...
Done reading (took 0.015566s), converting to Acc array..
Input prefix(4) [(0.204377359711,0.58752346877,0.466465813108),(-0.124071846716,-0.430925352499,0.818155869842),(9.23475595191e-2,0.471875966527,-0.390485706739)]
Input in CPU memory and did GC (took 0.00179s), starting benchmark...
! Responding to env Var: DEBUG=4
beforeConversion, output was:
================================================================================
fold
(\x0 x1 -> ((#2 x0) + (#2 x1), (#1 x0) + (#1 x1), (#0 x0) + (#0 x1)))
(0.0,0.0,0.0)
(let a0 =
use
(Array
(Z :. 10)
[(0.204377359711,0.58752346877,0.466465813108),(-0.124071846716,-0.430925352499,0.818155869842),(9.23475595191e-2,0.471875966527,-0.390485706739),(0.855260848999,0.17408952117,-5.50553835928e-2),(-0.355440662242,0.29258855246,5.77864721417e-2),(-0.699805021286,-0.290639472194,-0.194938545115),(-0.225843770429,-0.214849968441,-0.948073166423),(4.79635689408e-2,0.789017047733,0.361016079783),(-0.108046301641,-0.568562230095,-0.264976296574),(0.881816339679,-0.122657088563,-0.182035161182)])
in zipWith
(\x0 x1 -> let x2 = #1 x1 in
let x3 = #1 x0 in
let x4 = #0 x1 in
let x5 = #0 x0 in
let x6 = #2 x0 in
let x7 = #2 x1
in (not ((x6 ==* x7) &&* ((x3 ==* x2) &&* (x5 ==* x4)))) ?
(let x8 = x4 - x5 in
let x9 = x7 - x6 in
let x10 = x2 - x3 in
let x11 = ((x9 * x9) + (x10 * x10)) + (x8 * x8) in
let x12 = sqrt x11 in
let x13 = (1.0 * 1.0) / x11 in ((x13 * x9) / x12, (x13 * x10) / x12, (x13 * x8) / x12),
(0.0, 0.0, 0.0)))
(replicate Z :. All :. shapeSize ((shape a0)) a0)
(replicate Z :. shapeSize ((shape a0)) :. All a0))
initialConversion, output was:
================================================================================
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] Converting tuple const: ((((), Double), Double), Double) -> Tup [D 0.0,D 0.0,D 0.0]
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 2 (TTuple [TDouble,TDouble,TDouble])] -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 2 (TTuple [TDouble,TDouble,TDouble])] -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] Converting tuple const: ((), Double) -> D 1.0
[ToAccClone] Converting tuple const: ((), Double) -> D 1.0
[ToAccClone] Converting tuple const: ((), Double) -> D 0.0
[ToAccClone] Converting tuple const: ((), Double) -> D 0.0
[ToAccClone] Converting tuple const: ((), Double) -> D 0.0
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 2 (TTuple [TDouble,TDouble,TDouble])] -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] Converting tuple const: ((), ()) -> Tup []
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 2 (TTuple [TDouble,TDouble,TDouble])] -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 2 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] Converting tuple const: ((), ()) -> Tup []
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] convertArrayType ArraysR ((), Array) -> TTuple [TTuple [],TArray 1 (TTuple [TDouble,TDouble,TDouble])] -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
[ToAccClone] getAccType ArraysR ((), Array) -> TArray 1 (TTuple [TDouble,TDouble,TDouble])
Fold (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject 2 1 (EVr v0),ETupProject 2 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 1 1 (EVr v0),ETupProject 1 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 0 1 (EVr v0),ETupProject 0 1 (EVr v1)]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(aLt2,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Use (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182])
(ZipWith (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5, TDouble, ETupProject 1 1 (EVr v4))
(ELet (e6, TDouble, ETupProject 1 1 (EVr v3))
(ELet (e7, TDouble, ETupProject 0 1 (EVr v4))
(ELet (e8, TDouble, ETupProject 0 1 (EVr v3))
(ELet (e9, TDouble, ETupProject 2 1 (EVr v3))
(ELet (e10,
TDouble,
ETupProject 2 1 (EVr v4))
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
(Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[Fixed,All]
(EIndex [EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,
TDouble]))
aLt2)),
EConst (Tup [])])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2))
(Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[All,Fixed]
(EIndex [EConst (Tup []),
EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,
TDouble]))
aLt2))])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2))))
staticTuples, output was:
================================================================================
* Retrieving type for EVr v0 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v1 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v0 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v1 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v0 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v1 in tenv [v0,v1] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v4 in tenv [v3,v4] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v3 in tenv [e5,v3,v4] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v4 in tenv [e5,e6,v3,v4] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v3 in tenv [e5,e6,e7,v3,v4] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v3 in tenv [e5,e6,e7,e8,v3,v4] --> TTuple [TDouble,TDouble,TDouble]
* Retrieving type for EVr v4 in tenv [e5,e6,e7,e8,e9,v3,v4] --> TTuple [TDouble,TDouble,TDouble]
Fold (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject 2 1 (EVr v0),ETupProject 2 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 1 1 (EVr v0),ETupProject 1 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 0 1 (EVr v0),ETupProject 0 1 (EVr v1)]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(aLt2,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Use (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182])
(ZipWith (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5, TDouble, ETupProject 1 1 (EVr v4))
(ELet (e6, TDouble, ETupProject 1 1 (EVr v3))
(ELet (e7, TDouble, ETupProject 0 1 (EVr v4))
(ELet (e8, TDouble, ETupProject 0 1 (EVr v3))
(ELet (e9, TDouble, ETupProject 2 1 (EVr v3))
(ELet (e10,
TDouble,
ETupProject 2 1 (EVr v4))
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
(Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[Fixed,All]
(ETuple [EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,
TDouble]))
aLt2)),
EConst (Tup [])])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2))
(Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[All,Fixed]
(ETuple [EConst (Tup []),
EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,
TDouble]))
aLt2))])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2))))
liftComplexRands, output was:
================================================================================
Let (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(tmp_0,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Fold (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject 2 1 (EVr v0),ETupProject 2 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 1 1 (EVr v0),ETupProject 1 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 0 1 (EVr v0),ETupProject 0 1 (EVr v1)]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(aLt2,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Use (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182])
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(tmp_1,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
ZipWith (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5, TDouble, ETupProject 1 1 (EVr v4))
(ELet (e6, TDouble, ETupProject 1 1 (EVr v3))
(ELet (e7, TDouble, ETupProject 0 1 (EVr v4))
(ELet (e8, TDouble, ETupProject 0 1 (EVr v3))
(ELet (e9,
TDouble,
ETupProject 2 1 (EVr v3))
(ELet (e10,
TDouble,
ETupProject 2 1 (EVr v4))
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(tmp_2,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[Fixed,All]
(ETuple [EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,
TDouble,
TDouble]))
aLt2)),
EConst (Tup [])])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
aLt2))
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_2))
(Let (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(tmp_3,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[All,Fixed]
(ETuple [EConst (Tup []),
EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,
TDouble,
TDouble]))
aLt2))])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
aLt2))
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_3)))
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_1))))
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) tmp_0)
gatherLets, output was:
================================================================================
([(aLt2,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Use (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
(tmp_2,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[Fixed,All]
(ETuple [EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,TDouble]))
aLt2)),
EConst (Tup [])])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2)),
(tmp_3,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
Replicate (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
[All,Fixed]
(ETuple [EConst (Tup []),
EShapeSize (EShape (Vr (TArray 1
(TTuple [TDouble,TDouble,TDouble]))
aLt2))])
(Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) aLt2)),
(tmp_1,
TArray 2 (TTuple [TDouble,TDouble,TDouble]),
ZipWith (TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5, TDouble, ETupProject 1 1 (EVr v4))
(ELet (e6, TDouble, ETupProject 1 1 (EVr v3))
(ELet (e7, TDouble, ETupProject 0 1 (EVr v4))
(ELet (e8, TDouble, ETupProject 0 1 (EVr v3))
(ELet (e9, TDouble, ETupProject 2 1 (EVr v3))
(ELet (e10, TDouble, ETupProject 2 1 (EVr v4))
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),EConst (D 0.0),
EConst (D 0.0)])))))))))
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_2)
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_3)),
(tmp_0,
TArray 1 (TTuple [TDouble,TDouble,TDouble]),
Fold (TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject 2 1 (EVr v0),ETupProject 2 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 1 1 (EVr v0),ETupProject 1 1 (EVr v1)],
EPrimApp TDouble
(NP Add)
[ETupProject 0 1 (EVr v0),ETupProject 0 1 (EVr v1)]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
(Vr (TArray 2 (TTuple [TDouble,TDouble,TDouble])) tmp_1))],
Vr (TArray 1 (TTuple [TDouble,TDouble,TDouble])) tmp_0)
removeArrayTuple, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [Fixed,All]
(ETuple [EShapeSize (EShape aLt2),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EShapeSize (EShape aLt2)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1)],
progResults = WithoutShapes [tmp_0],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 109, num binds 5
desugarUnit, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [Fixed,All]
(ETuple [EShapeSize (EShape aLt2),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EShapeSize (EShape aLt2)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1)],
progResults = WithoutShapes [tmp_0],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 109, num binds 5
sizeAnalysis, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Replicate [Fixed,All]
(ETuple [EShapeSize (EShape aLt2),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EShapeSize (EShape aLt2)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1)],
progResults = WithoutShapes [tmp_0],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 109, num binds 5
explicitShapes, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1),
ProgBind tmp_0_shape TInt UnknownSize (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 108, num binds 6
trackUses, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1),
ProgBind tmp_0_shape
TInt
(UnknownSize, Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 108, num binds 6
fuseMaps, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2
tmp_3),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1),
ProgBind tmp_0_shape
TInt
(UnknownSize, Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 0,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 108, num binds 6
fissionAll 2X, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Orig)
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Fissioned 0 2 aLt2)
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Fissioned 1 2 aLt2)
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 0 2 tmp_2)
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 1 2 tmp_2)
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Concatted [tmp_2_3,tmp_2_4])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 0 2 tmp_3)
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 1 2 tmp_3)
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Concatted [tmp_3_6,tmp_3_7])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 0 2 tmp_1)
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Fissioned 1 2 tmp_1)
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Concatted [tmp_1_9,tmp_1_10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Fissioned 0 2 tmp_0)
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Fissioned 1 2 tmp_0)
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Concatted [tmp_0_12,tmp_0_13])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(UnknownSize, Orig)
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
desugarUnit, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
()
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt () (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 269, num binds 16
sizeAnalysis, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt (KnownSize [10]) (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 269, num binds 16
explicitShapes, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt (KnownSize [10]) (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 269, num binds 16
trackUses, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 269, num binds 16
fuseMaps, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [Fixed,All]
(ETuple [EConst (I 10),EConst (Tup [])])
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Replicate [All,Fixed]
(ETuple [EConst (Tup []),EConst (I 10)])
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 269, num binds 16
desugToBackperm, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 0, arrayUses = 2})
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Backpermute (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1003, TTuple [TInt,TInt])
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1003}))
aLt2_0),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Backpermute (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1004, TTuple [TInt,TInt])
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1004}))
aLt2_1),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Backpermute (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1006, TTuple [TInt,TInt])
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1006}))
aLt2_0),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 1, arrayUses = 1})
(Right Backpermute (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1007, TTuple [TInt,TInt])
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1007}))
aLt2_1),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_3
tmp_3_6),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right ZipWith (Lam2 (v3, TTuple [TDouble,TDouble,TDouble])
(v4, TTuple [TDouble,TDouble,TDouble])
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))
tmp_2_4
tmp_3_7),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 277, num binds 16
desugtoGenerate, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1003, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1003})))),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1004, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1004})))),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1006, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1006})))),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1007, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1007})))),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2009, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_2_3 (EVr indG_2009))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_3_6 (EVr indG_2009))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2010, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_2_4 (EVr indG_2010))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_3_7 (EVr indG_2010))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt (KnownSize [10]) (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 299, num binds 16
estimateCost, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Cost 0)
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Cost 0)
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Cost 0)
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Cost 1)
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1003, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1003})))),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Cost 1)
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1004, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1004})))),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Cost 7)
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(EIndexScalar tmp_2_3
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}]))
(EIndexScalar tmp_2_4
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]]))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Cost 1)
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1006, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1006})))),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Cost 1)
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1007, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1007})))),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Cost 7)
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(EIndexScalar tmp_3_6
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}]))
(EIndexScalar tmp_3_7
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]]))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Cost 31)
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2009, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_2_3 (EVr indG_2009))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_3_6 (EVr indG_2009))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Cost 31)
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2010, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_2_4 (EVr indG_2010))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
EIndexScalar tmp_3_7 (EVr indG_2010))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Cost 7)
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Cost 3)
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Cost 3)
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Cost 7)
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(KnownSize [10], Cost 1)
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 15,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 299, num binds 16
inlineCheap, output was:
================================================================================
!! Victory, inlineCheap: inlining reference to tmp_2_3
!! Victory, inlineCheap: inlining reference to tmp_2_4
!! Victory, inlineCheap: inlining reference to tmp_3_6
!! Victory, inlineCheap: inlining reference to tmp_3_7
!! Victory, inlineCheap: inlining reference to tmp_2_3
!! Victory, inlineCheap: inlining reference to tmp_3_6
!! Victory, inlineCheap: inlining reference to tmp_2_4
!! Victory, inlineCheap: inlining reference to tmp_3_7
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1003, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1003})))),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5])
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1004, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1004})))),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(ELet (indBP_100315,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100315})))
(ELet (indBP_100416,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100416})))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1006, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1006})))),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10])
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1007, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1007})))),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(ELet (indBP_100617,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100617})))
(ELet (indBP_100718,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100718})))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2009, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100319,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100319})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100620,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100620})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2010, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100421,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100421})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100722,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100722})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10])
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt (KnownSize [10]) (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 23,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 317, num binds 16
trackUses, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Right Use AccArray [10] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242,-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246,-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2,-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 6, arrayUses = 0})
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 6, arrayUses = 0})
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_2_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1003, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1003})))),
ProgBind tmp_2_4
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,5], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 5)])
(Lam1 (indBP_1004, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_1004})))),
ProgBind tmp_2
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix5, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)])
(ELet (indBP_100315,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5}])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100315})))
(ELet (indBP_100416,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix5},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix5},
EConst (I 5)]])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100416})))))),
ProgBind tmp_3_6
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1006, TTuple [TInt,TInt])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1006})))),
ProgBind tmp_3_7
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 5),EConst (I 10)])
(Lam1 (indBP_1007, TTuple [TInt,TInt])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_1007})))),
ProgBind tmp_3
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix8, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)])
(ELet (indBP_100617,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8}])
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100617})))
(ELet (indBP_100718,
TTuple [TInt,TInt],
ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix8},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix8},
EConst (I 5)]])
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100718})))))),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2009, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100319,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100319})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100620,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100620})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5], Uses {scalarUses = 1, arrayUses = 1})
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2010, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100421,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100421})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100722,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100722})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10,10], Uses {scalarUses = 0, arrayUses = 0})
(Right Generate (ETuple [EConst (I 10),EConst (I 10)])
(Lam1 (ix11, TTuple [TInt,TInt])
(ECond (EPrimApp TBool
(SP Lt)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)])
(EIndexScalar tmp_1_9
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11}]))
(EIndexScalar tmp_1_10
(ETuple [ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr ix11},
EPrimApp TInt
(NP Sub)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr ix11},
EConst (I 5)]]))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5], Uses {scalarUses = 1, arrayUses = 0})
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 1})
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape
TInt
(KnownSize [10], Uses {scalarUses = 0, arrayUses = 0})
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 23,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 317, num binds 16
deadCode, output was:
================================================================================
!! Victory: deadArrays, start an unraveling by eliminating: aLt2
!! Victory: deadArrays, start an unraveling by eliminating: tmp_2_3
!! Victory: deadArrays, start an unraveling by eliminating: tmp_2_4
!! Victory: deadArrays, start an unraveling by eliminating: tmp_2
!! Victory: deadArrays, start an unraveling by eliminating: tmp_3_6
!! Victory: deadArrays, start an unraveling by eliminating: tmp_3_7
!! Victory: deadArrays, start an unraveling by eliminating: tmp_3
!! Victory: deadArrays, start an unraveling by eliminating: tmp_1
.. deadArrays refusing to eliminate size/shape var: tmp_0_shape
Prog {progBinds = [ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_1_9
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2009, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100319,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100319})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100620,
TTuple [TInt,TInt],
EVr indG_2009)
(EIndexScalar aLt2_0
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100620})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_1_10
(TArray 2 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5,5])
(Right Generate (ETuple [EConst (I 5),EConst (I 5)])
(Lam1 (indG_2010, TTuple [TInt,TInt])
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100421,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100421})))
(ELet (v4,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100722,
TTuple [TInt,TInt],
EVr indG_2010)
(EIndexScalar aLt2_1
(ETupProject
{indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100722})))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (ix14, TInt)
(ECond (EPrimApp TBool
(SP Lt)
[EVr ix14,EConst (I 5)])
(EIndexScalar tmp_0_12 (EVr ix14))
(EIndexScalar tmp_0_13
(EPrimApp TInt
(NP Sub)
[EVr ix14,
EConst (I 5)]))))),
ProgBind tmp_0_shape TInt (KnownSize [10]) (Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 23,
typeEnv = [(aLt2, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_10, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_2_4, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_6, TArray 2 (TTuple [TDouble,TDouble,TDouble])),
(tmp_3_7, TArray 2 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 237, num binds 8
oneDimensionalize, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_1_9
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [25])
(Right Generate (EConst (I 25))
(Lam1 (flatidx23, TInt)
(ELet (gensym_31,
TTuple [TInt,TInt],
ELet (gensym_28,
TInt,
EPrimApp TInt
(IP Quot)
[EVr flatidx23,
EConst (I 5)])
(ELet (gensym_29,
TInt,
EPrimApp TInt
(IP Rem)
[EVr flatidx23,
EConst (I 5)])
(ELet (gensym_30,
TInt,
EConst (I 0))
(ETuple [EVr gensym_29,
EVr gensym_28]))))
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100319,
TTuple [TInt,TInt],
EVr gensym_31)
(ELet (gensym_33,
TInt,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100319})
(EIndexScalar aLt2_0
(EVr gensym_33))))
(ELet (v4,
TTuple [TDouble,TDouble,
TDouble],
ELet (indBP_100620,
TTuple [TInt,TInt],
EVr gensym_31)
(ELet (gensym_35,
TInt,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100620})
(EIndexScalar aLt2_0
(EVr gensym_35))))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)]))))))))))))),
ProgBind tmp_1_10
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [25])
(Right Generate (EConst (I 25))
(Lam1 (flatidx36, TInt)
(ELet (gensym_44,
TTuple [TInt,TInt],
ELet (gensym_41,
TInt,
EPrimApp TInt
(IP Quot)
[EVr flatidx36,
EConst (I 5)])
(ELet (gensym_42,
TInt,
EPrimApp TInt
(IP Rem)
[EVr flatidx36,
EConst (I 5)])
(ELet (gensym_43,
TInt,
EConst (I 0))
(ETuple [EVr gensym_42,
EVr gensym_41]))))
(ELet (v3,
TTuple [TDouble,TDouble,TDouble],
ELet (indBP_100421,
TTuple [TInt,TInt],
EVr gensym_44)
(ELet (gensym_46,
TInt,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100421})
(EIndexScalar aLt2_1
(EVr gensym_46))))
(ELet (v4,
TTuple [TDouble,TDouble,
TDouble],
ELet (indBP_100722,
TTuple [TInt,TInt],
EVr gensym_44)
(ELet (gensym_48,
TInt,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100722})
(EIndexScalar aLt2_1
(EVr gensym_48))))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)]))))))))))))),
ProgBind tmp_0_12
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Just StrideConst (EConst (I 5)), KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_9),
ProgBind tmp_0_13
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Just StrideConst (EConst (I 5)), KnownSize [5])
(Right Fold (Lam2 (v0, TTuple [TDouble,TDouble,TDouble])
(v1, TTuple [TDouble,TDouble,TDouble])
(ETuple [EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v1}],
EPrimApp TDouble
(NP Add)
[ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v0},
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v1}]]))
(EConst (Tup [D 0.0,D 0.0,D 0.0]))
tmp_1_10),
ProgBind tmp_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [10])
(Right Generate (EConst (I 10))
(Lam1 (flatidx49, TInt)
(ELet (gensym_53,
TInt,
ELet (gensym_52, TInt, EConst (I 0))
(ETuple [EVr flatidx49]))
(ECond (EPrimApp TBool
(SP Lt)
[EVr gensym_53,
EConst (I 5)])
(EIndexScalar tmp_0_12
(EVr gensym_53))
(ELet (gensym_56,
TInt,
EPrimApp TInt
(NP Sub)
[EVr gensym_53,
EConst (I 5)])
(EIndexScalar tmp_0_13
(EVr gensym_56))))))),
ProgBind tmp_0_shape
TInt
(Nothing, KnownSize [10])
(Left EConst (I 10))],
progResults = WithShapes [(tmp_0, tmp_0_shape)],
progType = TArray 1 (TTuple [TDouble,TDouble,TDouble]),
uniqueCounter = 57,
typeEnv = [(aLt2_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(aLt2_1, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_12, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_13, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_0_shape, TInt),
(tmp_1_10, TArray 1 (TTuple [TDouble,TDouble,TDouble])),
(tmp_1_9, TArray 1 (TTuple [TDouble,TDouble,TDouble]))]}
[dbg] engaging optional typecheck pass, AST size 274, num binds 8
normalizeExps, output was:
================================================================================
Prog {progBinds = [ProgBind aLt2_0
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [5])
(Right Use AccArray [5] [0.204377359711,-0.124071846716,9.23475595191e-2,0.855260848999,-0.355440662242] [0.58752346877,-0.430925352499,0.471875966527,0.17408952117,0.29258855246] [0.466465813108,0.818155869842,-0.390485706739,-5.50553835928e-2,5.77864721417e-2]),
ProgBind aLt2_1
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [5])
(Right Use AccArray [5] [-0.699805021286,-0.225843770429,4.79635689408e-2,-0.108046301641,0.881816339679] [-0.290639472194,-0.214849968441,0.789017047733,-0.568562230095,-0.122657088563] [-0.194938545115,-0.948073166423,0.361016079783,-0.264976296574,-0.182035161182]),
ProgBind tmp_1_9
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [25])
(Right Generate (EConst (I 25))
(Lam1 (flatidx23, TInt)
(ELet (gensym_28,
TInt,
EPrimApp TInt
(IP Quot)
[EVr flatidx23,EConst (I 5)])
(ELet (gensym_29,
TInt,
EPrimApp TInt
(IP Rem)
[EVr flatidx23,
EConst (I 5)])
(ELet (gensym_30, TInt, EConst (I 0))
(ELet (gensym_31,
TTuple [TInt,TInt],
ETuple [EVr gensym_29,
EVr gensym_28])
(ELet (indBP_100319,
TTuple [TInt,TInt],
EVr gensym_31)
(ELet (gensym_33,
TInt,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr indBP_100319})
(ELet (v3,
TTuple [TDouble,
TDouble,
TDouble],
EIndexScalar aLt2_0
(EVr gensym_33))
(ELet (indBP_100620,
TTuple [TInt,
TInt],
EVr gensym_31)
(ELet (gensym_35,
TInt,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr indBP_100620})
(ELet (v4,
TTuple [TDouble,
TDouble,
TDouble],
EIndexScalar aLt2_0
(EVr gensym_35))
(ELet (e5,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v4})
(ELet (e6,
TDouble,
ETupProject {indexFromRight = 1,
projlen = 1,
tupexpr = EVr v3})
(ELet (e7,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v4})
(ELet (e8,
TDouble,
ETupProject {indexFromRight = 0,
projlen = 1,
tupexpr = EVr v3})
(ELet (e9,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v3})
(ELet (e10,
TDouble,
ETupProject {indexFromRight = 2,
projlen = 1,
tupexpr = EVr v4})
(ECond (EPrimApp TBool
(BP Not)
[EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e9,
EVr e10],
EPrimApp TBool
(BP And)
[EPrimApp TBool
(SP Eq)
[EVr e6,
EVr e5],
EPrimApp TBool
(SP Eq)
[EVr e8,
EVr e7]]]])
(ELet (e11,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e7,
EVr e8])
(ELet (e12,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e10,
EVr e9])
(ELet (e13,
TDouble,
EPrimApp TDouble
(NP Sub)
[EVr e5,
EVr e6])
(ELet (e14,
TDouble,
EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Add)
[EPrimApp TDouble
(NP Mul)
[EVr e12,
EVr e12],
EPrimApp TDouble
(NP Mul)
[EVr e13,
EVr e13]],
EPrimApp TDouble
(NP Mul)
[EVr e11,
EVr e11]])
(ELet (e15,
TDouble,
EPrimApp TDouble
(FP Sqrt)
[EVr e14])
(ELet (e16,
TDouble,
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EConst (D 1.0),
EConst (D 1.0)],
EVr e14])
(ETuple [EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e12],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e13],
EVr e15],
EPrimApp TDouble
(FP FDiv)
[EPrimApp TDouble
(NP Mul)
[EVr e16,
EVr e11],
EVr e15]])))))))
(ETuple [EConst (D 0.0),
EConst (D 0.0),
EConst (D 0.0)])))))))))))))))))))),
ProgBind tmp_1_10
(TArray 1 (TTuple [TDouble,TDouble,TDouble]))
(Nothing, KnownSize [25])
(Right Generate (EConst (I 25))
(Lam1 (flatidx36, TInt)
(ELet (gensym_41,
TInt,
EPrimApp TInt
(IP Quot)
[EVr flatidx36,EConst (I 5)])
(ELet (gensym_42,
TInt,
EPrimApp TInt
(IP Rem)
[EVr flatidx36,
EConst (I 5)])
(ELet (gensym_43, TInt, EConst (I 0))
(ELet (gensym_44,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment