Range Float¶
Functionality¶
alias: List Range Float
Useful for generating sequences of Float values. The code perhaps describes best what the three modes do:
- def frange(start, stop, step):
‘’‘Behaves like range but for floats’‘’ if start == stop:
stop += 1step = max(1e-5, abs(step)) if start < stop:
- while start < stop:
- yield start start += step
- else:
step = -abs(step) while start > stop:
yield start start += step
- def frange_count(start, stop, count):
‘’’ Gives count total values in [start,stop] ‘’’ if count < 2:
yield start- else:
count = int(count) step = (stop - start) / (count - 1) yield start for i in range(count - 2):
start += step yield startyield stop
- def frange_step(start, step, count):
‘’’ Gives count values with step from start’‘’ if abs(step) < 1e-5:
step = 1- for i in range(int(count)):
- yield start start += step
Inputs and Parameters¶
One UI parameter controls the behaviour of this Node; the Range | Count
Mode switch. The last input changes accordingly.
Mode | Input | Description |
---|---|---|
Step | Start | value to start at |
Step | value of the skip distance to the next value. The Step value is considered the absolute difference between successive numbers. | |
Range | Stop | last value to generate, don’t make values beyond this. If this value is lower than the start value then the sequence will be of descending values. |
Count | Count | number of values to produce given Start and Step. Never negative - negative produces an empty list |
A word on implementation:
This Node accepts Integers and Floats and lists of them.
Outputs¶
floats or Integers, in list form.
Examples¶
Non-vectorized
Float Range _(start, stop, step)_
FloatRange(0.0, 1.1 ,10.0) >>> [0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]
FloatRange(0.0 ,2.2, 10.0) >>> [0.0, 2.2, 4.4, 6.6, 8.8]
FloatRange(-3.97, 0.97, 6.0) >>> [-3.97, -3.0, -2.029, -1.059, -0.089, 0.88, 1.85, 2.82, 3.79, 4.76, 5.73]
FloatRange(2.0, 1.0, -4.0) >>> [2.0, 1.0, 0.0, -1.0, -2.0, -3.0]
Count Range _(start, stop, count)_
CountRange(0.0, 1.0, 5) >>> [0.0, 1.0, 2.0, 3.0, 4.0]
CountRange(0.0, 2.5, 5) >>> [0.0, 0.625, 1.25, 1.875, 2.5]
CountRange(-4.0, 1.2, 6) >>> [-4.0, -2.96, -1.91, -0.879, 0.16, 1.2]
CountRange(2.0, 1.0, 4) >>> [2.0, 1.6, 1.3, 1.0]
Step Range _(start, step, count)_
StepRange(0.0, 1.0, 10) >>> [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
StepRange(0.0, 2.4, 5) >>> [0.0, 2.4, 4.8, 7.2, 9.6]
StepRange(-4.0, 1.2, 6) >>> [-4.0, -2.8, -1.6, -0.4, 0.8, 2.0]
StepRange(2.0, 1.0, 4) >>> [2.0, 3.0, 4.0, 5.0]
Vectorized
Progress Thread for the IntRange in the issue tracker shows several examples.