tablestore 8

writes and outputs 8 values to a table.
Author: robert schirmer
License: who cares
Github: rbrt/data/tablestore 8.axo

Inlets

bool32.risingfalling if 'write' is set to on and an input is changed,the value is stored at the input's index plus the 'offset'and passed to the output.

bool32.risingfalling if 'thru' is on,the input is passed through to the respective output without being stored.

frac32 v0

frac32 v1

frac32 v2

frac32 v3

frac32 v4

frac32 v5

frac32 v6

frac32 v7

int32 sets an offset for writing to the table

Outlets

frac32 v0

frac32 v1

frac32 v2

frac32 v3

frac32 v4

frac32 v5

frac32 v6

frac32 v7

Attributes

objref table

Declaration
uint32_t prev0;
uint32_t prev1;
uint32_t prev2;
uint32_t prev3;
uint32_t prev4;
uint32_t prev5;
uint32_t prev6;
uint32_t prev7;
Init
prev0 = 0;
prev1 = 0;
prev2 = 0;
prev3 = 0;
prev4 = 0;
prev5 = 0;
prev6 = 0;
prev7 = 0;
Control Rate
if (!inlet_write) {
  prev0 = inlet_v0;
  prev1 = inlet_v1;
  prev2 = inlet_v2;
  prev3 = inlet_v3;
  prev4 = inlet_v4;
  prev5 = inlet_v5;
  prev6 = inlet_v6;
  prev7 = inlet_v7;
}

if ((inlet_v0 != prev0) && (inlet_write)) {
  attr_table.array[inlet_offset + 0] = __SSAT(inlet_v0, 28) >> attr_table.GAIN;
  outlet_v0 = attr_table.array[__USAT((inlet_offset + 0), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev0 = inlet_v0;
} else {
  outlet_v0 = attr_table.array[__USAT((inlet_offset + 0), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v0 = inlet_v0;
}

if ((inlet_v1 != prev1) && (inlet_write)) {
  attr_table.array[inlet_offset + 1] = __SSAT(inlet_v1, 28) >> attr_table.GAIN;
  outlet_v1 = attr_table.array[__USAT((inlet_offset + 1), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev1 = inlet_v1;
} else {
  outlet_v1 = attr_table.array[__USAT((inlet_offset + 1), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v1 = inlet_v1;
}

if ((inlet_v2 != prev2) && (inlet_write)) {
  attr_table.array[inlet_offset + 2] = __SSAT(inlet_v2, 28) >> attr_table.GAIN;
  outlet_v2 = attr_table.array[__USAT((inlet_offset + 2), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev2 = inlet_v2;
} else {
  outlet_v2 = attr_table.array[__USAT((inlet_offset + 2), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v2 = inlet_v2;
}

if ((inlet_v3 != prev3) && (inlet_write)) {
  attr_table.array[inlet_offset + 3] = __SSAT(inlet_v3, 28) >> attr_table.GAIN;
  outlet_v3 = attr_table.array[__USAT((inlet_offset + 3), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev3 = inlet_v3;
} else {
  outlet_v3 = attr_table.array[__USAT((inlet_offset + 3), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v3 = inlet_v3;
}

if ((inlet_v4 != prev4) && (inlet_write)) {
  attr_table.array[inlet_offset + 4] = __SSAT(inlet_v4, 28) >> attr_table.GAIN;
  outlet_v4 = attr_table.array[__USAT((inlet_offset + 4), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev4 = inlet_v4;
} else {
  outlet_v4 = attr_table.array[__USAT((inlet_offset + 4), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v4 = inlet_v4;
}

if ((inlet_v5 != prev5) && (inlet_write)) {
  attr_table.array[inlet_offset + 5] = __SSAT(inlet_v5, 28) >> attr_table.GAIN;
  outlet_v5 = attr_table.array[__USAT((inlet_offset + 5), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev5 = inlet_v5;
} else {
  outlet_v5 = attr_table.array[__USAT((inlet_offset + 5), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v5 = inlet_v5;
}

if ((inlet_v6 != prev6) && (inlet_write)) {
  attr_table.array[inlet_offset + 6] = __SSAT(inlet_v6, 28) >> attr_table.GAIN;
  outlet_v6 = attr_table.array[__USAT((inlet_offset + 6), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev6 = inlet_v6;
} else {
  outlet_v6 = attr_table.array[__USAT((inlet_offset + 6), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v6 = inlet_v6;
}

if ((inlet_v7 != prev7) && (inlet_write)) {
  attr_table.array[inlet_offset + 7] = __SSAT(inlet_v7, 28) >> attr_table.GAIN;
  outlet_v7 = attr_table.array[__USAT((inlet_offset + 7), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
  prev7 = inlet_v7;
} else {
  outlet_v7 = attr_table.array[__USAT((inlet_offset + 7), attr_table.LENGTHPOW)]
              << attr_table.GAIN;
}
if (inlet_thru) {
  outlet_v7 = inlet_v7;
}

Privacy

© 2024 Zrna Research