module BOAST::Arithmetic
Defines arithmetic operation, mostly using operator overloading.
Public Instance Methods
!()
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 59 def ! return Expression::new(Not,nil,self) end
!=(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 67 def !=(x) return Expression::new(Different,self,x) end
*(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 95 def *(x) return Expression::new(Multiplication,self,x) end
**(x)
click to toggle source
Returns an Exponentiation
Expression
bewtween self and x @param [#to_var] x @return [Expression]
# File lib/BOAST/Language/Arithmetic.rb, line 48 def **(x) return Expression::new(Exponentiation,self,x) end
+(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 87 def +(x) return Expression::new(Addition,self,x) end
+@()
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 107 def +@ return Expression::new(Plus,nil,self) end
-(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 91 def -(x) return Expression::new(Subtraction,self,x) end
-@()
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 103 def -@ return Expression::new(Minus,nil,self) end
/(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 99 def /(x) return Expression::new(Division,self,x) end
<(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 75 def <(x) return Expression::new(Less,self,x) end
<=(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 83 def <=(x) return Expression::new(LessOrEqual,self,x) end
==(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 63 def ==(x) return Expression::new(Equal,self,x) end
===(x)
click to toggle source
Returns an Affectation
Expression
x into self @param [#to_var] x @return [Expression]
# File lib/BOAST/Language/Arithmetic.rb, line 55 def ===(x) return Affectation::new(self,x) end
>(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 71 def >(x) return Expression::new(Greater,self,x) end
>=(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 79 def >=(x) return Expression::new(GreaterOrEqual,self,x) end
and(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 122 def and(x) return Expression::new(And, self, x) end
Also aliased as: &
cast(type)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 134 def cast(type) return type.copy("(#{type.type.decl}#{type.dimension? ? " *" : ""})#{self}") end
coerce(other)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 154 def coerce(other) return [other.to_var, self] end
components( range )
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 138 def components( range ) var = self.to_var if var.type.vector_length == 1 return self else existing_set = [*('0'..'9'),*('a'..'z')].first(var.type.vector_length) if range.kind_of?(Range) then eval "self.s#{existing_set[range].join("")}" elsif range.kind_of?(Array) then eval "self.s#{existing_set.values_at(*range).join("")}" else eval "self.s#{existing_set[range]}" end end end
dereference()
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 117 def dereference return Index::new(self, *(self.dimension.collect(&:start))) if lang == FORTRAN return Expression::new(Dereference,nil,self) end
or(x)
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 128 def or(x) return Expression::new(Or, self, x) end
Also aliased as: |
reference()
click to toggle source
# File lib/BOAST/Language/Arithmetic.rb, line 111 def reference return Expression::new(Reference,nil,self) end
Also aliased as: address