The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use PDL::LiteF;
use PDL::LinearAlgebra;
use PDL::LinearAlgebra::Trans qw //;
use PDL::Complex;
use Test;

BEGIN { plan tests => 9 };

sub fapprox {
	my($a,$b) = @_;
	PDL::abs($a-$b)->max < 0.0001;
}

$a = pdl([[1.7,3.2],[9.2,7.3]]);
ok(fapprox($a->t,$a->xchg(0,1)));

$aa = cplx random(2,2,2);
ok(fapprox($aa->t(0),$aa->xchg(1,2)));

$id = pdl([[1,0],[0,1]]);
ok(fapprox($a->minv x $a,$id));

ok(fapprox($a->mcrossprod->mposinv->tritosym x $a->mcrossprod,$id));

ok(fapprox($a->mdet ,-17.03 ));

ok($a->mcrossprod->mposdet !=0);


ok(fapprox($a->mcos->macos,pdl([[1.7018092, 0.093001244],[0.26737858,1.8645614]])));
ok(fapprox($a->msin->masin,pdl([[ -1.4397834,0.093001244],[0.26737858,-1.2770313]])));
ok(fapprox($a->mexp->mlog,$a));