2021-02-01 13:31:45 +01:00
|
|
|
/* ******************************************************************************
|
|
|
|
*
|
2019-06-06 14:21:15 +02:00
|
|
|
*
|
|
|
|
* This program and the accompanying materials are made available under the
|
|
|
|
* terms of the Apache License, Version 2.0 which is available at
|
|
|
|
* https://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
*
|
2021-02-01 13:31:45 +01:00
|
|
|
* See the NOTICE file distributed with this work for additional
|
|
|
|
* information regarding copyright ownership.
|
2019-06-06 14:21:15 +02:00
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
* License for the specific language governing permissions and limitations
|
|
|
|
* under the License.
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
******************************************************************************/
|
|
|
|
|
2020-03-02 10:49:41 +01:00
|
|
|
namespace sd.graph;
|
2019-06-06 14:21:15 +02:00
|
|
|
|
|
|
|
table LongPair {
|
|
|
|
first:long; // first
|
|
|
|
second:long; // second
|
|
|
|
}
|
|
|
|
|
|
|
|
table LongTriple {
|
|
|
|
first:long;
|
|
|
|
second:long;
|
|
|
|
third:long;
|
|
|
|
}
|
|
|
|
|
|
|
|
table IntPair {
|
|
|
|
first:int;
|
|
|
|
second:int;
|
|
|
|
}
|
|
|
|
|
|
|
|
table IntTriple {
|
|
|
|
first:int;
|
|
|
|
second:int;
|
|
|
|
third:int;
|
|
|
|
}
|
|
|
|
|
|
|
|
enum OpType:byte {
|
|
|
|
TRANSFORM_FLOAT = 0,
|
|
|
|
TRANSFORM_SAME = 1,
|
|
|
|
TRANSFORM_BOOL = 2,
|
|
|
|
TRANSFORM_STRICT = 3,
|
|
|
|
TRANSFORM_ANY = 4,
|
|
|
|
REDUCE_FLOAT = 5, // for both reduce & reduce3
|
|
|
|
REDUCE_SAME = 6,
|
|
|
|
REDUCE_LONG = 7,
|
|
|
|
REDUCE_BOOL = 8,
|
|
|
|
INDEX_REDUCE = 9,
|
|
|
|
SCALAR = 10,
|
|
|
|
SCALAR_BOOL = 11,
|
|
|
|
BROADCAST = 12,
|
|
|
|
BROADCAST_BOOL = 13,
|
|
|
|
PAIRWISE = 14,
|
|
|
|
PAIRWISE_BOOL = 15,
|
|
|
|
REDUCE_3 = 16,
|
|
|
|
SUMMARYSTATS = 17,
|
|
|
|
SHAPE = 18,
|
|
|
|
AGGREGATION = 19, // ???
|
|
|
|
RANDOM = 20, //
|
|
|
|
CUSTOM = 21, // custom ops
|
|
|
|
GRAPH = 22, // another graph used as op
|
|
|
|
VARIABLE = 40,
|
|
|
|
BOOLEAN = 60, // booleanOps, for conditionals
|
|
|
|
LOGIC = 119, //
|
|
|
|
}
|
|
|
|
|
|
|
|
enum InputType:byte {
|
|
|
|
UNDEFINED,
|
|
|
|
NUMERIC,
|
|
|
|
STRINGULAR,
|
|
|
|
NUMERIC_SET,
|
|
|
|
STRINGULAR_SET,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum OpClass:byte {
|
|
|
|
TRANSFORM = 0, // ops of this class return the same shape as primary input
|
|
|
|
REDUCTION = 1, // ops of this class return accumulation shape
|
|
|
|
MULTIPLICATOR = 2, // ops of this class may return whatever they want
|
|
|
|
GRAPH = 3, // embedded graph
|
|
|
|
CONDITIONAL = 4, // IF
|
|
|
|
LOOP = 5, // Various LOOPS
|
|
|
|
}
|