class Mathmas::Power

@args = [3, 2] -> 3^2

Public Instance Methods

exec(args) click to toggle source
Calls superclass method Mathmas::Expression#exec
# File lib/mathmas/core/expression.rb, line 102
def exec(args)
  super(args).inject(:**)
end
to_s() click to toggle source
# File lib/mathmas/core/expression.rb, line 79
def to_s
  arr = @args.map do |arg|
    str = arg.to_s
    (arg.is_a?(Mathmas::Expression) ? "(" + str + ")" : str)
  end
  arr.join("^")
end
to_tex(numerator = Number.new(1)) click to toggle source

TODO: display root when args.is_a? Rational

# File lib/mathmas/core/expression.rb, line 88
def to_tex(numerator = Number.new(1))
  strs = @args.map do |arg|
    str = arg.to_tex
    (arg.is_a?(Mathmas::Expression) ? "(" + str + ")" : str)
  end

  if @args[1].is_a?(Number) && @args[1].num < 0
    denominator = (@args[1].num == -1 ? strs[0] : strs[0] + "^" + (-@args[1].num).to_s)
    "\\frac{#{ numerator.to_tex }}{#{ denominator }}"
  else
    strs.join("^")
  end
end