#9150 closed Bugs (worksforme)
multiprecision doesn't work with element_prod of boost::numeric::ublas
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | multiprecision | 
| Version: | Boost 1.53.0 | Severity: | Problem | 
| Keywords: | rational vector | Cc: | gcc, 4.7.3 | 
Description
Consider
#include<boost/numeric/ublas/vector.hpp>
#include<boost/numeric/ublas/io.hpp>
#include<boost/multiprecision/cpp_int.hpp>
#include<complex>
int main(){
	typedef boost::multiprecision::cpp_rational Type;
	boost::numeric::ublas::vector<Type> a(3, 1), b(3);
	b(0) = 0;
	b(1) = Type(-3, 4);
	b(2) = 2;
	std::cout<<"a = "<<a<<", b = "<<b;
	noalias(a) = element_prod(a, b);
	std::cout<<", a*b = "<<a<<"\n";
	
	return 0;
}
The output is:
a = [3](1,1,1), b = [3](0,-3/4,2), a*b = [3](0,1,1)
The same problem exists with mpq_rational.
Change History (4)
comment:1 by , 9 years ago
| Summary: | multiprecision::cpp_rational doesn't work with element_prod of boost::numeric::ublas → multiprecision doesn't work with element_prod of boost::numeric::ublas | 
|---|
comment:2 by , 9 years ago
comment:3 by , 9 years ago
| Resolution: | → worksforme | 
|---|---|
| Status: | new → closed | 
This works for me for 1.54.0 onwards, can only reproduce in 1.53.0. Can you make doubly sure you're using the latest Boost version?
comment:4 by , 9 years ago
| Version: | Boost 1.54.0 → Boost 1.53.0 | 
|---|
  Note:
 See   TracTickets
 for help on using tickets.
    

The same problem exists for all number<type>.