Class: CTioga2::Data::Backends::MathBackend

Inherits:
Backend
  • Object
show all
Includes:
Dobjects, Math
Defined in:
lib/ctioga2/data/backends/backends/math.rb

Instance Method Summary collapse

Methods inherited from Backend

#dataset, describe, #description, #expand_sets, #has_set?, list_backends, #set_param_from_string, #sets_available

Methods included from BackendDescriptionExtend

#base_description, #create_factory, #describe, #description, #factory_class, #factory_description, #factory_description_hash, #factory_description_list, #has_factory?, #inherit_parameters, #param, #param_accessor, #param_reader, #param_writer, #register_class, #set_description

Methods included from Log

debug, error, fatal, #format_exception, #identify, info, init_logger, logger, set_level, #spawn, warn

Constructor Details

#initializeMathBackend

Returns a new instance of MathBackend.



52
53
54
55
56
57
58
# File 'lib/ctioga2/data/backends/backends/math.rb', line 52

def initialize
  super()
  @samples = 100
  @x_range = -10.0..10.0
  @t_range = -10.0..10.0
  @log = false
end

Instance Method Details

#query_dataset(set) ⇒ Object

This is called by the architecture to get the data. It first splits the set name into func@range.



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/ctioga2/data/backends/backends/math.rb', line 62

def query_dataset(set)
  if set =~ /(.*)@(.*)/
    set = $1
    range = $2
  end          
  name = "math: #{set}"
  if set =~ /:/         # parametric
    if range
      set_param_from_string(:t_range, range)
    end
    varname = "t"
    values = make_dvector(@t_range, @samples, @log)
  else
    if range
      set_param_from_string(:x_range, range)
    end
    varname = "x"
    values = make_dvector(@x_range, @samples, @log)
    set = "x:#{set}"
  end
  return Dataset.dataset_from_spec(name, set) do |b|
    get_data_column(b, varname, values)
  end
end