dalvescb / hashedexpression Goto Github PK
View Code? Open in Web Editor NEWLibrary in Haskell for Dynamically Storing Expressions and Code Generator for Various Non-Linear Optimization Solvers
License: BSD 3-Clause "New" or "Revised" License
Library in Haskell for Dynamically Storing Expressions and Code Generator for Various Non-Linear Optimization Solvers
License: BSD 3-Clause "New" or "Revised" License
We should put the code to compute these nodes in assign_values() so that it can be pre-computed once, not in every iteration like now.
Combine ExpressionDiff(s) needs a context expression map, change the type to Reader ExpressionMap ExpressionDiff so we can combine ExpressionDiffs using (+), (-), (*.), ...
Related to #19.
Error comes up when running stack test
from root directory. Must investigate.
Full console log (error happens close to bottom of log):
$ stack test
HashedExpression-0.1.0.0: test (suite: HashedExpression-test)
simpTest0_0
True
simpTest0_1
True
simpTest0_2
True
simpTest0_3
True
simpTest0_4
True
simpTest0_5
True
simpTest0_6
True
simpTest0_7
True
simpTest0_8
True
simpTest0_9
True
simpTest0_10
True
simpTest0_11
True
simpTest0_12
True
simpTest0_13
True
simpTest0_14
True
simpTest0_15
True
simpTest0_16
True
simpTest0_17
True
simpTest0_18
True
simpTest1_0
True
simpTest1_1
True
simpTest1_2
True
simpTest1_3
True
simpTest1_4
True
simpTest1_5
True
simpTest1_6
True
simpTest1_7
True
simpTest1_8
True
simpTest1_9
True
simpTest1_10
True
simpTest2_0
True
simpTest2_1
True
simpTest2_2
True
simpTest2_3
True
simpTest2_4
True
simpTest2_5
True
simpTest2_6
True
simpTest2_7
True
simpTest2_8
True
simpTest3_0
True
simpTest3_1
True
simpTest3_5
True
simpTest3_6
True
simpTest3_7
True
simpTest3_9
True
simpTest3_10
False
simpTest3_11
False
simpTest3_12
True
simpTest4_0
False
simpTest4_1
False
simpTest4_2
True
simpTest5_0
True
simpTest5_1
True
simpTest5_2
True
simpTest5_3
True
simpTest5_4
True
simpTest5_5
True
simpTest5_6
True
simpTest5_7
True
simpTest5_8
True
simpTest5_9
True
simpTest5_10
True
simpTest5_11
True
simpTest5_12
True
simpTest5_13
True
simpTest5_14
True
simpTest5_15
True
simpTest5_17
True
simpTest5_18
True
simpTest5_19
True
simpTest5_20
True
simpTest5_21
True
simpTest5_22
True
simpTest5_23
True
simpTest5_24
True
simpTest5_25
True
simpTest5_26
True
simpTest5_27
True
simpTest5_28
True
simpTest5_29
True
simpTest6_0
True
simpTest6_1
True
simpTest6_2
True
simpTest6_3
True
simpTest6_4
True
simpTest6_5
True
simpTest6_6
True
simpTest6_7
True
simpTest6_8
True
simpTest6_9
True
simpTest6_10
True
simpTest6_11
True
simpTest6_12
True
simpTest6_13
True
simpTest6_14
True
simpTest6_15
True
simpTest6_16
True
simpTest6_17
True
simpTest6_18
True
simpTest7_0
True
simpTest7_1
True
simpTest7_2
True
simpTest7_3
True
simpTest7_4
True
simpTest7_5
True
simpTest7_6
True
simpTest7_7
True
simpTest7_8
True
simpTest7_9
True
simpTest7_10
True
simpTest7_14
True
simpTest7_15
True
simpTest7_16
True
simpTest7_17
True
simpTest7_18
True
simpTest7_19
True
simpTest7_20
True
simpTest7_21
True
simpTest7_22
True
simpTest7_23
True
simpTest7_24
True
simpTest7_25
True
simpTest7_26
True
simpTest6_27
True
simpTest7_28
True
simpTest7_29
True
simpTest7_30
True
simpTest7_32
True
simpTest7_33
True
simpTest7_34
True
simpTest7_35
True
simpTest7_36
True
simpTest7_37
True
simpTest8_0
True
simpTest8_1
True
simpTest8_2
True
simpTest8_3
False
simpTest8_4
True
simpTest8_5
True
simpTest8_6
True
simpTest8_7
True
simpTest8_8
True
simpTest8_9
True
simpTest8_10
True
simpTest9_0
True
simpTest9_3
True
simpTest9_4
True
simpTest9_5
True
simpTest9_6
True
simpTest9_7
True
simpTest9_8
(((2.0+:0.0)*.X1(4))+:((2.0+:0.0)*.Y1(4)))
simpTest9_9
True
simpTest9_10
(((x+:0.0)*.X1(4))+:((x+:0.0)*.Y1(4)))
simpTest9_11
True
simpTest9_12
True
simpTest9_13
True
simpTest9_14
True
simpTest9_16
((x+:y)*.(X1(4)+:Y1(4)))
simpTest9_17
True
simpTest9_18
(((x+:y)*.X1(4))+:((x+:y)*.Y1(4)))
simpTest9_19
True
simpTest9_20
True
simpTest9_21
True
simpTest10_0
True
simpTest10_1
True
simpTest10_2
True
simpTest10_3
True
simpTest10_4
True
simpTest10_5
True
simpTest10_6
True
simpTest10_7
True
simpTest10_8
True
simpTest10_9
True
simpTest10_10
True
evalTest0_0
+++ OK, passed 100 tests.
evalTest0_1
+++ OK, passed 100 tests.
evalTest0_2
+++ OK, passed 100 tests.
evalTest0_3
+++ OK, passed 100 tests.
evalTest0_4
+++ OK, passed 100 tests.
evalTest0_5
+++ OK, passed 100 tests.
evalTest0_1b
+++ OK, passed 100 tests.
evalTest0_7
+++ OK, passed 100 tests.
evalTest0_8
+++ OK, passed 100 tests.
evalTest1_0
+++ OK, passed 100 tests.
evalTest1_1
+++ OK, passed 100 tests.
evalTest1_2
+++ OK, passed 100 tests.
evalTest1_3
+++ OK, passed 100 tests.
evalTest1_4
+++ OK, passed 100 tests.
evalTest1_5
+++ OK, passed 100 tests.
evalTest1_6
checkInj (Dim1 2,[(0,-1)])
checkInj (Dim1 2,[(0,0)])
checkInj (Dim1 11,[(8,8)])
checkInj (Dim1 23,[(8,15)])
checkInj (Dim1 17,[(9,8)])
checkInj (Dim1 17,[(4,9)])
checkInj (Dim1 5,[(1,1)])
checkInj (Dim1 10,[(5,5)])
checkInj (Dim1 16,[(1,8)])
checkInj (Dim1 13,[(0,6)])
checkInj (Dim1 13,[(1,8)])
checkInj (Dim1 6,[(3,4)])
checkInj (Dim1 16,[(7,12)])
checkInj (Dim1 20,[(8,13)])
checkInj (Dim1 7,[(3,4)])
checkInj (Dim1 15,[(2,9)])
checkInj (Dim1 10,[(8,7)])
checkInj (Dim1 19,[(7,13)])
checkInj (Dim1 8,[(2,5)])
checkInj (Dim1 17,[(8,7)])
checkInj (Dim1 5,[(3,3)])
checkInj (Dim1 22,[(8,16)])
checkInj (Dim1 5,[(3,2)])
checkInj (Dim1 14,[(1,7)])
checkInj (Dim1 18,[(2,10)])
checkInj (Dim1 13,[(2,5)])
checkInj (Dim1 19,[(3,9)])
checkInj (Dim1 11,[(5,5)])
checkInj (Dim1 3,[(1,0)])
checkInj (Dim1 16,[(8,14)])
checkInj (Dim1 8,[(2,2)])
checkInj (Dim1 15,[(6,10)])
checkInj (Dim1 6,[(0,4)])
checkInj (Dim1 13,[(7,10)])
checkInj (Dim1 9,[(7,6)])
checkInj (Dim1 20,[(7,15)])
checkInj (Dim1 11,[(2,7)])
checkInj (Dim1 7,[(6,5)])
checkInj (Dim1 11,[(1,4)])
checkInj (Dim1 23,[(9,17)])
checkInj (Dim1 6,[(2,4)])
checkInj (Dim1 2,[(0,0)])
checkInj (Dim1 14,[(6,9)])
checkInj (Dim1 16,[(3,8)])
checkInj (Dim1 5,[(1,2)])
checkInj (Dim1 10,[(0,7)])
checkInj (Dim1 14,[(4,9)])
checkInj (Dim1 13,[(6,9)])
checkInj (Dim1 8,[(3,5)])
checkInj (Dim1 14,[(5,8)])
checkInj (Dim1 6,[(1,4)])
checkInj (Dim1 12,[(0,7)])
checkInj (Dim1 12,[(1,8)])
checkInj (Dim1 18,[(1,8)])
checkInj (Dim1 13,[(3,3)])
checkInj (Dim1 6,[(0,4)])
checkInj (Dim1 19,[(9,14)])
checkInj (Dim1 23,[(9,16)])
checkInj (Dim1 14,[(5,10)])
checkInj (Dim1 12,[(5,7)])
checkInj (Dim1 15,[(9,10)])
checkInj (Dim1 15,[(6,11)])
checkInj (Dim1 25,[(9,17)])
checkInj (Dim1 12,[(0,8)])
checkInj (Dim1 22,[(7,13)])
checkInj (Dim1 18,[(7,14)])
checkInj (Dim1 13,[(0,5)])
checkInj (Dim1 7,[(1,0)])
checkInj (Dim1 15,[(7,13)])
checkInj (Dim1 10,[(3,9)])
checkInj (Dim1 10,[(5,4)])
checkInj (Dim1 8,[(0,6)])
checkInj (Dim1 7,[(0,-1)])
checkInj (Dim1 13,[(4,6)])
checkInj (Dim1 9,[(7,7)])
checkInj (Dim1 23,[(6,13)])
checkInj (Dim1 14,[(2,4)])
checkInj (Dim1 11,[(5,10)])
checkInj (Dim1 14,[(8,10)])
checkInj (Dim1 13,[(7,11)])
checkInj (Dim1 18,[(8,15)])
checkInj (Dim1 20,[(9,10)])
checkInj (Dim1 18,[(6,12)])
checkInj (Dim1 3,[(0,-1)])
checkInj (Dim1 14,[(6,11)])
checkInj (Dim1 17,[(8,9)])
checkInj (Dim1 20,[(7,10)])
checkInj (Dim1 8,[(3,6)])
checkInj (Dim1 11,[(2,3)])
checkInj (Dim1 18,[(9,11)])
checkInj (Dim1 5,[(0,0)])
checkInj (Dim1 11,[(5,10)])
checkInj (Dim1 6,[(1,0)])
checkInj (Dim1 21,[(8,13)])
checkInj (Dim1 23,[(7,15)])
checkInj (Dim1 19,[(3,10)])
checkInj (Dim1 7,[(0,-1)])
checkInj (Dim1 13,[(6,10)])
checkInj (Dim1 11,[(1,4)])
checkInj (Dim1 10,[(5,9)])
+++ OK, passed 100 tests.
evalTest1_7
+++ OK, passed 100 tests.
evalTest1_8
+++ OK, passed 100 tests.
evalTest2_0
+++ OK, passed 100 tests.
evalTest2_1
+++ OK, passed 100 tests.
evalTest2_2
+++ OK, passed 100 tests.
evalTest2_3
+++ OK, passed 100 tests.
evalTest2_4
+++ OK, passed 100 tests.
evalTest2_7
+++ OK, passed 100 tests.
evalTest2_8
+++ OK, passed 100 tests.
evalTest3_0
+++ OK, passed 100 tests.
evalTest3_1
+++ OK, passed 100 tests.
evalTest3_2
+++ OK, passed 100 tests.
evalTest3_3
+++ OK, passed 100 tests.
evalTest3_4
+++ OK, passed 100 tests.
evalTest3_5
*** Failed! (after 1 test):
Exception:
projDim Dim3 crop(Dim3 (2,2,2),SSCrop [(1,15),(1,15),(1,15)] [16,16,16])
CallStack (from HasCallStack):
error, called at src/HashedExpression.hs:381:8 in HashedExpression-0.1.0.0-Z9BGn1n4hWHmezXsbqB2c:HashedExpression
0
0.0
0.0
0.0
0.0
0.0
0.0
evalTest3_6
checkInj (Dim3 (2,2,2),[(1,15),(0,15),(0,15)])
checkInj (Dim3 (2,2,2),[(1,15),(0,15),(0,15)])
checkInj (Dim3 (10,10,10),[(1,15),(0,15),(0,15)])
checkInj (Dim3 (4,4,4),[(1,15),(0,15),(0,15)]) tests)...
checkInj (Dim3 (2,2,2),[(1,15),(0,15),(0,15)]) tests and 0.1 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 0.2 shrinks)...
checkInj (Dim3 (3,3,3),[(1,15),(0,15),(0,15)]) tests and 1 shrink)...
checkInj (Dim3 (2,2,2),[(1,15),(0,15),(0,15)]) tests and 1.1 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 1.2 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 2 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 3 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 4 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 5 shrinks)...
checkInj (Dim3 (11,11,11),[(1,15),(0,15),(0,15)])sts and 6 shrinks)...
*** Failed! Exception: 'Error in array index' (after 3 tests and 7 shrinks):
-1
0.0
0.0
0.0
0.0
0.0
0.0
evalTest3_7
+++ OK, passed 100 tests.
evalTest3_8
+++ OK, passed 100 tests.
evalTest4_1
+++ OK, passed 100 tests.
partDiffTest0_0
+++ OK, passed 100 tests (1% trivial).
partDiffTest0_1
+++ OK, passed 100 tests.
partDiffTest0_2
+++ OK, passed 100 tests.
partDiffTest0_3
+++ OK, passed 100 tests (1% trivial).
partDiffTest0_4
+++ OK, passed 100 tests.
partDiffTest0_5
+++ OK, passed 100 tests.
partDiffTest0_6
+++ OK, passed 100 tests.
partDiffTest0_7
+++ OK, passed 100 tests.
partDiffTest0_8
+++ OK, passed 100 tests.
partDiffTest0_9
+++ OK, passed 100 tests (1% trivial).
partDiffTest1_2
+++ OK, passed 100 tests.
partDiffTest1_3
+++ OK, passed 100 tests.
partDiffTest1_4
+++ OK, passed 100 tests.
partDiffTest1_5
+++ OK, passed 100 tests.
partDiffTest1_6
+++ OK, passed 100 tests.
partDiffTest1_7
+++ OK, passed 100 tests (67% trivial).
HashedExpression-0.1.0.0: Test suite HashedExpression-test passed
Example:
> let e = simplify (2 .*: (x1 +: y1))
> e
(((2.0+:0.0)*.X1(4))+:((2.0+:0.0)*.Y1(4)))
Some tests are being printed as booleans, instead of being proper QuickCheck tests. For consistency and best practices, these should be converted to QuickCheck tests.
We found some rogue tests in HashedDimCheck.hs
that should become real tests, in the style of e.g. EvalSpec.hs
.
Perhaps exclude Num and define operators ourselves.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.