Summary:
cos function is much much more accurate than cosf.
this patch replaces cosf by cos to gain more accuracy.
Reviewers: cedric, jsuya, vtorri
Subscribers: vtorri, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10695
The local cos and sin functions differ from
the math header cos and sin functions by result values
The 4th decimal place is different.
Computing large numbers can cause errors.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10467
Summary:
The eina_matrix3_compose and eina_matrix3_multiply API's are
mathematically identical (even though the implementations are
reversed... weird), except that the latter also includes a fastpath for
identity matrices.
Having two functionally equivalent APIs is redundant, so ideally one or
the other would be dropped. But in order avoid API breakage, just have
one routine wrapper the other and eliminate the internal redundancy.
(Note that the parameter signatures of the two routines are different -
eina_matrix3_compose() takes the two input matrices first, and the
output matrix last, while eina_matrix3_multiply() takes the parameters
in the reverse order. This inconsistency in the API style could result
in accidentally erroneous usage and would be an argument for deprecation
of one of the two APIs.)
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5806
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
We had this nice shortcuts for multiply and inverse with the identity matrix.
Pity we never used it! The EINA_MATRIX_TYPE_IDENTITY is coming from an enum
without and direct assignments to its internals. Being the first item in the
enum it is most likely will be 0 which makes the whole bitwise AND zero and thus
the optimized path will never get called. If our compiler now decides hew wants
to handle enums differently and does not assign the 0 to the first item this
bitwise operation will be even more screwed. What we really want is to check is
if the type we get for the matrix matches EINA_MATRIX_TYPE_IDENTITY. So better
do this. Made me look into matrix multply and inverse. Fun!
Thanks to smatch for poiting this out.
This is a late change that has been discussing on the ML as we don't want to release an API, we can't make faster.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>