]> git.llucax.com Git - z.facultad/75.29/dale.git/blobdiff - src/number.h
Bugfix de cast a la C++.
[z.facultad/75.29/dale.git] / src / number.h
index 5b0b71e126f8ae89ad03a39c194e28ac80af47f8..99eec8c22534d6815c8177fda66e77a58d97a4e9 100644 (file)
@@ -229,19 +229,17 @@ std::ostream& operator<< (std::ostream& os, const number< N, E >& n)
 template < typename N, typename E >
 number< N, E >& number< N, E >::operator*= (const number< N, E >& n)
 {
-       number < N, E > r_op = n;
-       normalize_length(n);
-       n.normalize_length(*this);
-       *this = divide_n_conquer(*this, n);
+       //number < N, E > r_op = n;
+       //normalize_length(n);
+       //n.normalize_length(*this);
+       *this = naif(*this, n);
        return *this;
 }
 
 template < typename N, typename E >
 number< N, E > operator* (const number< N, E >& n1, const number< N, E >& n2)
 {
-       number< N, E > tmp = n1;
-       tmp *= n2;
-       return tmp;
+       return naif(n1, n2);
 }
 
 template < typename N, typename E >
@@ -358,7 +356,7 @@ number < N, E > naif(const number< N, E > &u, const number< N, E > &v)
                 */
                E tmp;
                tmp = static_cast< E >(u.chunk[0]) * static_cast< E >(v.chunk[0]);
-               num_type tnum = num_type(static_cast< N* >(&tmp), 2, sign);
+               num_type tnum = num_type(reinterpret_cast< N* >(&tmp), 2, sign);
                //std::cout << "T:" << tnum << " " << tmp << "\n";
                //printf("1: %lu %lu %llu\n", u.chunk[0], v.chunk[0], tmp);
                return tnum;