On 26 November 2010 00:04, Anders Logg<logg@xxxxxxxxx> wrote:
On Thu, Nov 25, 2010 at 11:02:54PM +0000, Garth N. Wells wrote:
On 25/11/10 22:48, Benjamin Kehlet wrote:
On 25 November 2010 23:29, Garth N. Wells<gnw20@xxxxxxxxx> wrote:
On 25/11/10 20:17, Anders Logg wrote:
On Thu, Nov 25, 2010 at 05:55:36PM +0000, Garth N. Wells wrote:
On 25/11/10 17:34, Anders Logg wrote:
On Thu, Nov 25, 2010 at 05:07:40PM +0000, Garth N. Wells wrote:
There is a dependency on
dolfin/ode/SORSolver.h
in dolfin/common/real.cpp. This seems odd to me. Is there a reason for
it?
Garth
real.h/cpp provide some basic algorithms that work on high precision
floats. One of these is the matrix exponential which is computed by a
rational approximation, hence the need for solving a linear system.
The SORSolver is the only solver in DOLFIN that handles high precision
floats (uBLAS etc can't be used).
What is the typical system size?
Garth
We have used it for (dense) matrices of size up to 100 x 100 for
computing quadrature weights etc for the cG(100) method.
You could try Armadillo? I guess it can be templated over the higher
precision floats.
Yes. With uBLAS the problem was that, even if it is templated, it
relied on non-templated code (eg. stuff in cmath).
Also Peter Gottschling claims that MTL4 can do this. Maybe it is worth a try?
I would try Armadillo since it's already a required dependency, and
it's targeted more at dense problems than MTL4 is.
Garth
Agree.
--
Anders
It turns out Armadillo can not handle gmp types.
The Armadillo documentation says: "... type can be one of: char, int,
float, double, std::complex<double>, etc.". However, the promising
"etc." does not contain the gmp types.