Conversation
1313e9b to
bf68d73
Compare
a727aa3 to
7f0cde0
Compare
The entire logic that was present to determine whether a given tensor is created or loaded and whether when it will be set to zero and when not is not also applicable to variables. This is in order to prevent a bug in which result variables would be loaded but not set to zero before their intended value is added to it.
This way, when inheriting from a given generator, it is still possible to pass a custom context class to the top-level Generator<> interface, which is required in order to make things play out nicely.
7f0cde0 to
0a8c304
Compare
Support tensor contraction frameworks are - TensorOperations.jl - TensorKit.jl - ITensor.jl
cded94a to
a24970b
Compare
Effectively the same as fc0ae1c but working with the updated version of the code.
Absolutely! I plan to write them once it is clear that the workflow has stabilized. That will happen once I have written a couple more backends to ensure that the concepts are transferable.
I agree. Given that this doesn't only affect this PR, I would suggest to do code style unification in a separate PR once this one is merged. |
|
@CodiumAI-Agent /improve |
PR Code Suggestions ✨Latest suggestions up to d1321aa
Previous suggestionsSuggestions up to commit 42478f9
Suggestions up to commit f54ba2b
|
At this point of the code path, they are guaranteed to be empty so functionally everything stays the same. However, it makes folks reading the code less itchy about whether or not some indices might be forgotten here.
26c00ec to
0382865
Compare
This allows to perform CSE at a symbolic level, using evaluation trees as inputs. Contrary to the implementation currently used for the cache_manager (during evaluation), this implementation guards against hash collisions.
bimalgaudel
left a comment
There was a problem hiding this comment.
I approve these changes with one remark that I have a doubt if it is going to be scalable to have an all-encompassing export framework aimed to generalize wildly different flavors of numerical tensor frameworks: e.g. TiledArray, Julia, Python, ITF etc. My doubt is in having a fixed set of data structures and extending their methods to support an ever-growing number of export scenarios: e.g. to support non-binary tensor contraction expressions.
42478f9 to
f886c36
Compare
This implements (more or less) general code generator capabilities into SeQuant. The idea is to abstract the bulk of the work required during code generation away such that new languages can be added as easily as possible.
TODO
insert_blank_linesfunction ofGeneratoras it breaks the model of only generating semanticsResultExprobjects