instanciation of a single Keval object for better performance AND restriction of what the operators are
made it so that × is an actual operator, instead of *
removed the preprocessing of the expression that removed consecutive operators. this caused issues with unary operators in expressions such as 2 + -2 which returned 4 instead of 0 because of it. this is now fixed. this kind of preprocessing should not be done anyway, as it is completely invisible to the user. what you should do is prevent the user to be able to press invalid buttons under certain conditions.
big code cleanup: unified formatting, optimized imports, removed the 100000 of ExperimentalMaterial3Api::class opt-ins, etc.
It is to be noted that the factorial operator has been added. You just need to add a button somewhere to solve #54
Closes #53
This PR does quite a few things:
2 + -2
which returned 4 instead of 0 because of it. this is now fixed. this kind of preprocessing should not be done anyway, as it is completely invisible to the user. what you should do is prevent the user to be able to press invalid buttons under certain conditions.ExperimentalMaterial3Api::class
opt-ins, etc.It is to be noted that the factorial operator has been added. You just need to add a button somewhere to solve #54