As per title. If we put circuit1.product(circuit2) after calling the forward functions, the answer will be wrong. This indicates bugs in the param init code flow.
Discussed with @loreloc on Friday. Bottom line is:
Make life easier for starting users, who are expected to rely mostly on pre-defined things. We should have some default behaviour, which may not cover all corner cases but should be "correct" out of the box.
Advanced users are expected to learn how the lib works. There can be not-starter-facing cases without well-defined default, and the user should be responsible for specifying a "safe" behaviour they want.
(We may improve safety checks later but it will be of lower priority -- we make everything work first)
As per title. If we put
circuit1.product(circuit2)
after calling the forward functions, the answer will be wrong. This indicates bugs in the param init code flow.https://github.com/april-tools/cirkit/blob/a3792cbb7c7ae0dd30823f861a4729f51faac0a5/tests/new/model/functional/test_product.py#L14-L18