Hi all: I just noticed a thing which caused me some trouble. The PDL 'atan' function defaults to 'float' precision instead of the more natural 'double':
use PDL; my $a1 = atan(double(2379.0)/double(1024.0)); my $a2 = atan(float(2379.0)/float(1024.0)); my $a3 = atan(2379.0/1024.0); print "$a1, $a2, $a3\n"; This prints: 1.1643329321713, 1.1643328666687, 1.1643328666687 This feature causes a problem when porting to/from C as the C atan function operates on doubles. I think this traces down to Basic::Math in the math.pd file: my (@ufuncs1) = qw(acos asin atan cosh sinh tan tanh); # F,D only ... my $func; foreach $func (@ufuncs1) { pp_def($func, HandleBad => 1, NoBadifNaN => 1, GenericTypes => ['F','D'], Pars => 'a(); [o]b();', Inplace => 1, Doc => inplace_doc( $func ), Code => code_ufunc($func), BadCode => badcode_ufunc($func), ); } Note that GenericTypes isF, D instead of D, F. I would go so far to say that this is a bug, as the default pdl type is double as in: my $pdl = pdl(4,5,6); p $pdl->info PDL: Double D [3] Regards, Doug Hunt ------------------------------------------------------------------------------ _______________________________________________ pdl-devel mailing list pdl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-devel