* [WIP] Add symbolic tests for correctness
* Fix typo
* Fix expected value for test_and_fold
* Add more tests for symbolic
* It is indeed right
* Clean up
* Check all strings
* Put TODO back
* we typing
* types look good in theory
* most tests pass
* gpu tests pass
* TEST_AST
* delete comments
* i must have written that bug so many times
* bugfix
* don't merge the small ones
* add f to constants
* commits from reduce
* don't GCD the mod nodes
* broken and a hack IMAGE=3
* group for reduce
* fix linter + mypy
* move out test ast
* insource TENSOR_TYPE_TO_NP_TYPE
* does this fix it?
* move imports out
* indexer
* works
* all use indexer
* boolean in the indexer too
* symbolic is a better name than indexer
* better symbolic API
* min and max
* symbolic tests
* work
* more tests
* fix demodder
* __str__ in the superclass
* NumNode
* awesome that works
* still works
* fix up parens
* fix zeroviews
* dead lines
* expr_node
* works
* still works
* refactor to not use __new__ methods
* ugh something went wrong a while ago
* this fixes it
* mod and div at the end
* test
* symbolic
* working
* one linter issue fixed
* other division
* more simplifys
* works
* validhacks
* VALIDHACKS passes thneed
* no str replace stuff
* inline indexes
* NATIVE_EXPLOG and factoring
* factor both ways
* cl indexing
* split on mod, not just full
* onnxlimit
* fix output shape
* op_estimate is a function of the program
* no ones in the index
* four_float4
* ALLOW_4FLOAT4
* test passes
* compute then store
* loads first
* bugfix
* better, but doesn't match
* select xb in smart way
* new test and bugfix
* no change to lazy
* Node fixes linter
* fix opencl with op_estimate
* fix mypy
* revert valid
* remove unused