Better handling of powers in modcc. (#2061)
- $x^{-1} \Rightarrow 1/x\quad \forall x$ - $x^n \Rightarrow x\cdot \dots \cdot x \quad x\in N; |x| < 5$ - $x^n \Rightarrow 1/(x\cdot \dots \cdot x) \quad x\in N; |x| < 5; x < 0$ - $b^e \Rightarrow \exp(\log(b) e)\quad \forall b, e$ The last point introduces potential errors when `pow(b, e)` is allowed, but `log(b)` is undefined. These occur exactly when all of the following is true - $b < 0$ - $e\in N$ - $e$, $b$ not known at compile time (since we cover these cases before)
Showing
- arbor/include/arbor/simd/simd.hpp 21 additions, 19 deletionsarbor/include/arbor/simd/simd.hpp
- modcc/printer/cexpr_emit.cpp 1 addition, 1 deletionmodcc/printer/cexpr_emit.cpp
- modcc/printer/cprinter.cpp 6 additions, 2 deletionsmodcc/printer/cprinter.cpp
- modcc/symdiff.cpp 38 additions, 9 deletionsmodcc/symdiff.cpp
- test/unit-modcc/test_symdiff.cpp 30 additions, 1 deletiontest/unit-modcc/test_symdiff.cpp
Please register or sign in to comment