module GSL::Oper
Public Class Methods
included(base)
click to toggle source
# File ../lib/gsl/oper.rb, line 3 def self.included(base) base.class_eval { alias_method :_gsl_oper_original_mul, :* alias_method :_gsl_oper_original_div, :/ def *(other) case other when Numeric _gsl_oper_original_mul(other) when GSL::Matrix, GSL::Vector, GSL::Matrix::Int, GSL::Vector::Int, GSL::Vector::Complex, GSL::Matrix::Complex, *GSL.have_tensor? ? [GSL::Tensor, GSL::Tensor::Int] : [] other.scale(self) else _gsl_oper_original_mul(other) end end def /(other) case other when Numeric _gsl_oper_original_div(other) when GSL::Poly, GSL::Poly::Int a = GSL::Poly[1]; a[0] = self GSL::Rational.new(a, other) when GSL::Vector::Col other.scale(self / GSL.pow_2(other.dnrm2)) when GSL::Vector::Int::Col v = other.to_f v.scale(self / GSL.pow_2(v.dnrm2)) else _gsl_oper_original_div(other) end end } end
Public Instance Methods
*(other)
click to toggle source
# File ../lib/gsl/oper.rb, line 8 def *(other) case other when Numeric _gsl_oper_original_mul(other) when GSL::Matrix, GSL::Vector, GSL::Matrix::Int, GSL::Vector::Int, GSL::Vector::Complex, GSL::Matrix::Complex, *GSL.have_tensor? ? [GSL::Tensor, GSL::Tensor::Int] : [] other.scale(self) else _gsl_oper_original_mul(other) end end
/(other)
click to toggle source
# File ../lib/gsl/oper.rb, line 22 def /(other) case other when Numeric _gsl_oper_original_div(other) when GSL::Poly, GSL::Poly::Int a = GSL::Poly[1]; a[0] = self GSL::Rational.new(a, other) when GSL::Vector::Col other.scale(self / GSL.pow_2(other.dnrm2)) when GSL::Vector::Int::Col v = other.to_f v.scale(self / GSL.pow_2(v.dnrm2)) else _gsl_oper_original_div(other) end end