in reply to Math::Matrix - Error: Can't locate object method "transpose"

I figured out what I did wrong. The line should be
my $point = $u->multiply_scalar($radius * cos($angle)) + $n_x_u->multiply_scalar($radius * sin($angle)) + $center;
Still, I'm thinking this mistake should have been trapped for?

Replies are listed 'Best First'.
Re^2: Math::Matrix - Error: Can't locate object method "transpose"
by choroba (Cardinal) on Nov 19, 2015 at 15:59 UTC
    You can also try to patch the source of Math::Matrix, making it overload x for multiply_scalar.
    diff --git a/lib/perl5/Math/Matrix.pm b/lib/perl5/Math/Matrix.pm index 0105845..1894a62 100644 --- a/lib/perl5/Math/Matrix.pm +++ b/lib/perl5/Math/Matrix.pm @@ -244,6 +244,7 @@ use strict; $VERSION = 0.8; use overload + 'x' => 'multiply_scalar', '~' => 'transpose', '+' => 'add', '-' => 'subtract',

    And then, voilą:

    use Math::Matrix; my $m = 'Math::Matrix'->new([0, 1, 2], [3, 4, 5], [6, 7, 8]); print $m x 2; __END__ Output: 0.00000 2.00000 4.00000 6.00000 8.00000 10.00000 12.00000 14.00000 16.00000

    Update: A bit more clever change added to the wishlist.

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,