The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

my ($ok1, $ok2, $ok3, $ok4, $ok5);

my $a= double( pdl [[2,0,1],[0,2,1],[1,0,1]] );
my $b;

mpow_($b,$a,1);
my $e = $b - $a;
p "mpow error 1 : $a^1 = $b  " unless $ok1= min( $e == 0 );

mpow_($b,$a,2);
$e = $b - $a x $a ;
p "mpow error 2 :  $e " unless $ok2= min( $e == 0 );

mpow_($b,$a,-1);
$e = $b x $a - ident(3,3);
p "mpow error 3 :  $e " unless $ok3= min( $e == 0 );

$b = mpow($a,-1);
$e = $b x $a - ident(3);
p "mpow error 4 :  $e " unless $ok4= min( $e == 0 );

$b = inv($a);
$e = $b x $a - ident(3);
p "mpow error 5 :  $e " unless $ok5= min( $e == 0 );

$ok1 && $ok2 && ok3 && $ok4 && $ok5 ;