Class: VectorNumber
- Inherits:
-
Object
- Object
- VectorNumber
- Includes:
- Comparing, Converting, Enumerating, MathConverting, Mathing, Querying, Stringifying
- Defined in:
- lib/vector_number.rb,
lib/vector_number/mathing.rb,
lib/vector_number/version.rb,
lib/vector_number/querying.rb,
lib/vector_number/comparing.rb,
lib/vector_number/converting.rb,
lib/vector_number/enumerating.rb,
lib/vector_number/stringifying.rb,
lib/vector_number/math_converting.rb,
lib/vector_number/numeric_refinements.rb
Overview
A class to add together anything.
Defined Under Namespace
Modules: Comparing, Converting, Enumerating, MathConverting, Mathing, NumericRefinements, Querying, Stringifying
Constant Summary collapse
- KNOWN_OPTIONS =
Keys for possible options. Unknown options will be rejected when creating a vector.
%i[mult].freeze
- DEFAULT_OPTIONS =
Default values for options.
{ mult: :dot }.freeze
- UNIT =
Get a unit for nth numeric dimension, where 1 is real, 2 is imaginary.
->(n) { n }.freeze
- R =
Constant for real unit.
UNIT[1]
- I =
Constant for imaginary unit.
UNIT[2]
- VERSION =
"0.4.3"
Constants included from Stringifying
Instance Attribute Summary collapse
-
#options ⇒ Hash{Symbol => Object}
readonly
Options used for this vector.
-
#size ⇒ Integer
readonly
Number of non-zero dimensions.
Class Method Summary collapse
-
.[](*values, **options) ⇒ VectorNumber
Create new VectorNumber from a list of values, possibly specifying options.
Instance Method Summary collapse
-
#+@ ⇒ VectorNumber
(also: #dup)
Return self.
-
#clone(freeze: true) ⇒ VectorNumber
Return self.
-
#initialize(values = nil, options = nil) {|coefficient| ... } ⇒ VectorNumber
constructor
Create new VectorNumber from
values, possibly specifyingoptions, possibly modifying coefficients with a block.
Methods included from Stringifying
Methods included from Querying
#finite?, #infinite?, #integer?, #negative?, #nonnumeric?, #nonzero?, #numeric?, #positive?, #real?, #zero?
Methods included from Comparing
Methods included from Enumerating
#[], #coefficients, #each, #to_h, #unit?, #units
Methods included from Converting
#imaginary, #real, #to_c, #to_d, #to_f, #to_i, #to_r
Methods included from MathConverting
#abs, #abs2, #ceil, #floor, #round, #truncate
Methods included from Mathing
#%, #*, #+, #-, #-@, #/, #coerce, #div, #divmod, #fdiv, #remainder
Constructor Details
#initialize(values = nil, options = nil) {|coefficient| ... } ⇒ VectorNumber
Create new VectorNumber from values, possibly specifying options, possibly modifying coefficients with a block.
110 111 112 113 114 115 116 117 118 119 |
# File 'lib/vector_number.rb', line 110 def initialize(values = nil, = nil, &transform) # @type var options: Hash[Symbol, Object] initialize_from(values) apply_transform(&transform) finalize_contents (, values: values) @options.freeze @data.freeze freeze end |
Instance Attribute Details
#options ⇒ Hash{Symbol => Object} (readonly)
Options used for this vector.
85 86 87 |
# File 'lib/vector_number.rb', line 85 def @options end |
#size ⇒ Integer (readonly)
Number of non-zero dimensions.
76 77 78 |
# File 'lib/vector_number.rb', line 76 def size @size end |
Class Method Details
.[](*values, **options) ⇒ VectorNumber
Create new VectorNumber from a list of values, possibly specifying options.
67 68 69 |
# File 'lib/vector_number.rb', line 67 def self.[](*values, **) new(values, ) end |
Instance Method Details
#+@ ⇒ VectorNumber Also known as: dup
Return self.
126 127 |
# File 'lib/vector_number.rb', line 126 def +@ = self # @since 0.2.4 |
#clone(freeze: true) ⇒ VectorNumber
Return self.
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/vector_number.rb', line 136 def clone(freeze: true) case freeze when true, nil self when false raise ArgumentError, "can't unfreeze #{self.class}" else raise ArgumentError, "unexpected value for freeze: #{freeze.class}" end end |