Math-Cephes
view release on metacpan or search on metacpan
lib/Math/Cephes/Matrix.pm view on Meta::CPAN
unless ($refer) {
die "Please supply an array of arrays for the matrix data"
unless (ref($arr) eq 'ARRAY' and ref($arr->[0]) eq 'ARRAY');
my $n = scalar @$arr;
my $m = scalar @{$arr->[0]};
die "Matrices must be square" unless $m == $n;
}
my ($coef, $n);
if ($refer) {
$n = $caller->{n};
my $cdata = $caller->{coef};
foreach (@$cdata) {
push @$coef, [ @$_];
}
}
else {
($coef, $n) = ($arr, scalar @$arr);
}
bless { coef => $coef,
n => $n,
}, $class;
}
lib/Math/Cephes/Polynomial.pm view on Meta::CPAN
sub new {
my ($caller, $arr) = @_;
my $refer = ref($caller);
my $class = $refer || $caller;
die "Must supply data for the polynomial"
unless ($refer or $arr);
my ($type, $ref, $data, $n);
if ($refer) {
($type, $ref, $n) =
($caller->{type}, $caller->{ref}, $caller->{n});
my $cdata = $caller->{data};
if (ref($cdata) eq 'ARRAY') {
$data = [ @$cdata ];
}
else {
my ($f, $s) = ($type eq 'fract') ? ('n', 'd') : ('r', 'i');
$data = {$f => [ @{$cdata->{$f}} ],
$s => [ @{$cdata->{$s}} ],
};
}
}
else {
($type, $ref, $data, $n) = get_data($arr);
}
bless { type => $type,
ref => $ref,
data => $data,
n => $n,
( run in 0.306 second using v1.01-cache-2.11-cpan-454fe037f31 )