Class: DRP::Weights::WeightFromCurrentDepth
- Inherits:
-
AbstractWeight
- Object
- AbstractWeight
- DRP::Weights::WeightFromCurrentDepth
- Defined in:
- lib/weights_and_max_depths.rb
Overview
weight_fcd 0..1 dynamic from current depth (uses max_depth)
weight_fcd 0..1, :function dynamic fcd w/ function
weight_fcd 0..1, 0..1 dynamic like previous but start
and end of range mapped from codons
weight_fcd 0..1, 0..1, :function like previous with function
the function applies to the dynamic mapping
of the current depth, and not the static
mapping via codons of start and end
which is always just linear
weight_fcd { |max_depth| dynamic, expects a block which takes the
... max_depth and returns a proc which
proc {|depth| ... } which takes the current depth
}
Instance Method Summary collapse
-
#initialize(args) ⇒ WeightFromCurrentDepth
constructor
A new instance of WeightFromCurrentDepth.
- #value ⇒ Object
Methods inherited from AbstractWeight
Constructor Details
#initialize(args) ⇒ WeightFromCurrentDepth
Returns a new instance of WeightFromCurrentDepth.
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
# File 'lib/weights_and_max_depths.rb', line 225 def initialize args @drp_instance = args.drp_instance @rule_method = args.rule_method @max_depth = @rule_method.max_depth - 1 arg1, arg2, arg3 = args.user_args if arg1.kind_of? Range @range = arg1 if arg2.kind_of? Range if (arg3.kind_of? Symbol) or (arg3.kind_of? String) @function = arg3 end min = Utils::map(@range, @drp_instance.) max = Utils::map(arg2, @drp_instance.) @range = min..max elsif (arg2.kind_of? Symbol) or (arg2.kind_of? String) @function = arg2 end else raise ArgumentError, 'bad argument to weight_fcd' end end |