diff --git a/packages/xod-patch-search/test/index.spec.js b/packages/xod-patch-search/test/index.spec.js index f9529b95..c27581c2 100644 --- a/packages/xod-patch-search/test/index.spec.js +++ b/packages/xod-patch-search/test/index.spec.js @@ -25,7 +25,7 @@ describe('xod-patch-search/index', () => { const result = idx.search('path:number'); assert.equal( result[0].item.path, - 'xod/core/nth-number-2' + 'xod/core/nth-number' ); }); @@ -37,7 +37,7 @@ describe('xod-patch-search/index', () => { it('searches: "number"', () => assert.equal( idx.search('number')[0].item.path, - 'xod/core/nth-number-2' // Cause it has a `number` in the path and it alphabetically sorted (that's why not *-to-string) + 'xod/core/nth-number' // Cause it has a `number` in the path and it alphabetically sorted (that's why not *-to-string) )); it('searches: "lib:xod/patch-nodes number"', () => { diff --git a/packages/xod-project/src/expandVariadicNodes.js b/packages/xod-project/src/expandVariadicNodes.js index fb5aa818..89a3fb35 100644 --- a/packages/xod-project/src/expandVariadicNodes.js +++ b/packages/xod-project/src/expandVariadicNodes.js @@ -57,8 +57,8 @@ const createAdditionalValueTerminalGroups = ( const getValueTerminalX = (terminalGroupIndex, terminalIndex) => ( rightmostInputTerminalX + DISTANCE_BETWEEN_TERMINALS + - // because terminalGroupIndex always starts from 2 - ((terminalGroupIndex - 2) * valueTerminalsGroupWidth) + + // because terminalGroupIndex always starts from 1 + ((terminalGroupIndex - 1) * valueTerminalsGroupWidth) + (terminalIndex * DISTANCE_BETWEEN_TERMINALS) ); @@ -77,8 +77,7 @@ const createAdditionalValueTerminalGroups = ( )(node), originalValueTerminalNodes )), - R.range(2), // [2; desiredArityLevel] - R.inc + R.range(1), // [1; desiredArityLevel) )(desiredArityLevel); }; @@ -152,12 +151,12 @@ const createLinksToAdditionalValueTerminals = const createLinksFromNodeOutputsToAccPins = (variadicPinKeys, expansionNodeIds) => { - const accOutPinKeyPairs = R.zip(variadicPinKeys.outputs, variadicPinKeys.acc); + const accOutPinKeyPairs = R.zip(variadicPinKeys.acc, variadicPinKeys.outputs); return R.compose( - R.chain(([inputNodeId, outputNodeId]) => R.map( + R.chain(([outputNodeId, inputNodeId]) => R.map( ([accPinKey, outputPinKey]) => Link.createLink( accPinKey, inputNodeId, - outputPinKey, outputNodeId + outputPinKey, outputNodeId, ), accOutPinKeyPairs )), diff --git a/packages/xod-project/test/fixtures/expanding.expected.xodball b/packages/xod-project/test/fixtures/expanding.expected.xodball index 352a1116..8526a413 100644 --- a/packages/xod-project/test/fixtures/expanding.expected.xodball +++ b/packages/xod-project/test/fixtures/expanding.expected.xodball @@ -203,11 +203,29 @@ }, "type": "xod/patch-nodes/input-number" }, + "HkCo0rJuM-$1": { + "label": "V1", + "id": "HkCo0rJuM-$1", + "position": { + "x": 526, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + "ByZ0o0HyOz-$1": { + "label": "V2", + "id": "ByZ0o0HyOz-$1", + "position": { + "x": 576, + "y": 0 + }, + "type": "xod/patch-nodes/input-string" + }, "HkCo0rJuM-$2": { "label": "V1", "id": "HkCo0rJuM-$2", "position": { - "x": 526, + "x": 626, "y": 0 }, "type": "xod/patch-nodes/input-number" @@ -216,7 +234,7 @@ "label": "V2", "id": "ByZ0o0HyOz-$2", "position": { - "x": 576, + "x": 676, "y": 0 }, "type": "xod/patch-nodes/input-string" @@ -225,7 +243,7 @@ "label": "V1", "id": "HkCo0rJuM-$3", "position": { - "x": 626, + "x": 726, "y": 0 }, "type": "xod/patch-nodes/input-number" @@ -234,7 +252,7 @@ "label": "V2", "id": "ByZ0o0HyOz-$3", "position": { - "x": 676, + "x": 776, "y": 0 }, "type": "xod/patch-nodes/input-string" @@ -243,7 +261,7 @@ "label": "V1", "id": "HkCo0rJuM-$4", "position": { - "x": 726, + "x": 826, "y": 0 }, "type": "xod/patch-nodes/input-number" @@ -251,64 +269,46 @@ "ByZ0o0HyOz-$4": { "label": "V2", "id": "ByZ0o0HyOz-$4", - "position": { - "x": 776, - "y": 0 - }, - "type": "xod/patch-nodes/input-string" - }, - "HkCo0rJuM-$5": { - "label": "V1", - "id": "HkCo0rJuM-$5", - "position": { - "x": 826, - "y": 0 - }, - "type": "xod/patch-nodes/input-number" - }, - "ByZ0o0HyOz-$5": { - "label": "V2", - "id": "ByZ0o0HyOz-$5", "position": { "x": 876, "y": 0 }, "type": "xod/patch-nodes/input-string" }, - "S112Prb_f": { - "id": "S112Prb_f", + "SJm79rXOz": { + "id": "SJm79rXOz", "type": "@/my-variadic", "position": { "x": 0, "y": 0 } }, - "rkxJ2vrbOG": { - "id": "rkxJ2vrbOG", + "Syx7m9BXuM": { + "id": "Syx7m9BXuM", "type": "@/my-variadic", "position": { "x": 100, "y": 100 } }, - "BJWkhwSbdG": { - "id": "BJWkhwSbdG", + "rk-7X5SmdM": { + "id": "rk-7X5SmdM", "type": "@/my-variadic", "position": { "x": 200, "y": 200 } }, - "ryz12Pr-uG": { - "id": "ryz12Pr-uG", + "HkfQm9HQOG": { + "id": "HkfQm9HQOG", "type": "@/my-variadic", "position": { "x": 300, "y": 300 } }, - "BkQy2DS-dM": { - "id": "BkQy2DS-dM", + "HkQX79Hm_f": { + "id": "HkQX79Hm_f", "type": "@/my-variadic", "position": { "x": 400, @@ -317,120 +317,120 @@ } }, "links": { - "HkNJ2PH-_M": { - "id": "HkNJ2PH-_M", + "SkEQXcSXuf": { + "id": "SkEQXcSXuf", "output": { "nodeId": "By1oTHyuz", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "By1oTHyuz" } }, - "SJSJ2wH-df": { - "id": "SJSJ2wH-df", + "SkS77qrmuM": { + "id": "SkS77qrmuM", "output": { "nodeId": "By1oTHyuz", "pinKey": "__out__" }, "input": { - "nodeId": "rkxJ2vrbOG", + "nodeId": "Syx7m9BXuM", "pinKey": "By1oTHyuz" } }, - "By8JnwHZuz": { - "id": "By8JnwHZuz", + "ryUQQqBmdM": { + "id": "ryUQQqBmdM", "output": { "nodeId": "By1oTHyuz", "pinKey": "__out__" }, "input": { - "nodeId": "BJWkhwSbdG", + "nodeId": "rk-7X5SmdM", "pinKey": "By1oTHyuz" } }, - "H1D1nwrW_G": { - "id": "H1D1nwrW_G", + "BkD7QqHQdG": { + "id": "BkD7QqHQdG", "output": { "nodeId": "By1oTHyuz", "pinKey": "__out__" }, "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "HkfQm9HQOG", "pinKey": "By1oTHyuz" } }, - "HJOy3DSbuz": { - "id": "HJOy3DSbuz", + "ryumQqSmOf": { + "id": "ryumQqSmOf", "output": { "nodeId": "By1oTHyuz", "pinKey": "__out__" }, "input": { - "nodeId": "BkQy2DS-dM", + "nodeId": "HkQX79Hm_f", "pinKey": "By1oTHyuz" } }, - "SyKJ3wHWuG": { - "id": "SyKJ3wHWuG", + "SktXm9H7dz": { + "id": "SktXm9H7dz", "output": { "nodeId": "Sk1jCBJ_M", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "Sk1jCBJ_M" } }, - "Hk91nPSZdf": { - "id": "Hk91nPSZdf", + "Sy5XQqSQ_M": { + "id": "Sy5XQqSQ_M", "output": { "nodeId": "Sk1jCBJ_M", "pinKey": "__out__" }, "input": { - "nodeId": "rkxJ2vrbOG", + "nodeId": "Syx7m9BXuM", "pinKey": "Sk1jCBJ_M" } }, - "Syok2wrW_z": { - "id": "Syok2wrW_z", + "S1iQ75BmuG": { + "id": "S1iQ75BmuG", "output": { "nodeId": "Sk1jCBJ_M", "pinKey": "__out__" }, "input": { - "nodeId": "BJWkhwSbdG", + "nodeId": "rk-7X5SmdM", "pinKey": "Sk1jCBJ_M" } }, - "rynJ2vS-uG": { - "id": "rynJ2vS-uG", + "S12mX5SXOf": { + "id": "S12mX5SXOf", "output": { "nodeId": "Sk1jCBJ_M", "pinKey": "__out__" }, "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "HkfQm9HQOG", "pinKey": "Sk1jCBJ_M" } }, - "B16k2PHb_z": { - "id": "B16k2PHb_z", + "rk6XmcB7_M": { + "id": "rk6XmcB7_M", "output": { "nodeId": "Sk1jCBJ_M", "pinKey": "__out__" }, "input": { - "nodeId": "BkQy2DS-dM", + "nodeId": "HkQX79Hm_f", "pinKey": "Sk1jCBJ_M" } }, - "S1RJ2DBWuM": { - "id": "S1RJ2DBWuM", + "ryCmQcSmOf": { + "id": "ryCmQcSmOf", "output": { - "nodeId": "BkQy2DS-dM", + "nodeId": "HkQX79Hm_f", "pinKey": "H13YRHyOM" }, "input": { @@ -438,10 +438,10 @@ "pinKey": "__in__" } }, - "B1yxyhwr-uM": { - "id": "B1yxyhwr-uM", + "ryyxQmcSmuz": { + "id": "ryyxQmcSmuz", "output": { - "nodeId": "BkQy2DS-dM", + "nodeId": "HkQX79Hm_f", "pinKey": "SkUhpHkdf" }, "input": { @@ -449,10 +449,10 @@ "pinKey": "__in__" } }, - "HJgg13DBZOG": { - "id": "HJgg13DBZOG", + "SJggXXcHQOG": { + "id": "SJggXXcHQOG", "output": { - "nodeId": "BkQy2DS-dM", + "nodeId": "HkQX79Hm_f", "pinKey": "S16hpryOG" }, "input": { @@ -460,279 +460,279 @@ "pinKey": "__in__" } }, - "SkWek2wrbuM": { - "id": "SkWek2wrbuM", + "HyWgQ7cS7uz": { + "id": "HyWgQ7cS7uz", "output": { "nodeId": "ryNjTHyOz", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "ryNjTHyOz" } }, - "Hyzey3DH-_M": { - "id": "Hyzey3DH-_M", + "r1zlQmqSmuf": { + "id": "r1zlQmqSmuf", "output": { "nodeId": "HytsTHkOf", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "HytsTHkOf" } }, - "H17gknwH-OG": { - "id": "H17gknwH-OG", + "BkXe779S7Oz": { + "id": "BkXe779S7Oz", "output": { "nodeId": "Hkl2pHkuz", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "Hkl2pHkuz" } }, - "H14ly3PSbuz": { - "id": "H14ly3PSbuz", + "SkVgQmqHQOM": { + "id": "SkVgQmqHQOM", "output": { "nodeId": "HkCo0rJuM", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "HkCo0rJuM" } }, - "B1Hly3wHW_G": { - "id": "B1Hly3wHW_G", + "HJremX5SmdM": { + "id": "HJremX5SmdM", "output": { "nodeId": "ByZ0o0HyOz", "pinKey": "__out__" }, "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "ByZ0o0HyOz" } }, - "r1Llk2vBbOf": { - "id": "r1Llk2vBbOf", + "ByIeXQ9Hm_G": { + "id": "ByIeXQ9Hm_G", + "output": { + "nodeId": "HkCo0rJuM-$1", + "pinKey": "__out__" + }, + "input": { + "nodeId": "Syx7m9BXuM", + "pinKey": "HkCo0rJuM" + } + }, + "BJweXQcrm_M": { + "id": "BJweXQcrm_M", + "output": { + "nodeId": "ByZ0o0HyOz-$1", + "pinKey": "__out__" + }, + "input": { + "nodeId": "Syx7m9BXuM", + "pinKey": "ByZ0o0HyOz" + } + }, + "Skdx7X5Bm_z": { + "id": "Skdx7X5Bm_z", "output": { "nodeId": "HkCo0rJuM-$2", "pinKey": "__out__" }, "input": { - "nodeId": "rkxJ2vrbOG", + "nodeId": "rk-7X5SmdM", "pinKey": "HkCo0rJuM" } }, - "r1Dx13wSb_z": { - "id": "r1Dx13wSb_z", + "ryYe7X9HmOM": { + "id": "ryYe7X9HmOM", "output": { "nodeId": "ByZ0o0HyOz-$2", "pinKey": "__out__" }, "input": { - "nodeId": "rkxJ2vrbOG", + "nodeId": "rk-7X5SmdM", "pinKey": "ByZ0o0HyOz" } }, - "r1_xkhvrW_M": { - "id": "r1_xkhvrW_M", + "rJqxXQqHQuG": { + "id": "rJqxXQqHQuG", "output": { "nodeId": "HkCo0rJuM-$3", "pinKey": "__out__" }, "input": { - "nodeId": "BJWkhwSbdG", + "nodeId": "HkfQm9HQOG", "pinKey": "HkCo0rJuM" } }, - "rkFg1hwS-_z": { - "id": "rkFg1hwS-_z", + "ByolQQqrQuz": { + "id": "ByolQQqrQuz", "output": { "nodeId": "ByZ0o0HyOz-$3", "pinKey": "__out__" }, "input": { - "nodeId": "BJWkhwSbdG", + "nodeId": "HkfQm9HQOG", "pinKey": "ByZ0o0HyOz" } }, - "HkcgkhvSZdM": { - "id": "HkcgkhvSZdM", + "S1nlQXqB7dG": { + "id": "S1nlQXqB7dG", "output": { "nodeId": "HkCo0rJuM-$4", "pinKey": "__out__" }, "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "HkQX79Hm_f", "pinKey": "HkCo0rJuM" } }, - "HJoly2vSZOz": { - "id": "HJoly2vSZOz", + "B16gXm9SXdG": { + "id": "B16gXm9SXdG", "output": { "nodeId": "ByZ0o0HyOz-$4", "pinKey": "__out__" }, "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "HkQX79Hm_f", "pinKey": "ByZ0o0HyOz" } }, - "Hkne1hvSWuf": { - "id": "Hkne1hvSWuf", + "B1CemXcSXuz": { + "id": "B1CemXcSXuz", "output": { - "nodeId": "HkCo0rJuM-$5", - "pinKey": "__out__" - }, - "input": { - "nodeId": "BkQy2DS-dM", - "pinKey": "HkCo0rJuM" - } - }, - "rkpe12DSWOG": { - "id": "rkpe12DSWOG", - "output": { - "nodeId": "ByZ0o0HyOz-$5", - "pinKey": "__out__" - }, - "input": { - "nodeId": "BkQy2DS-dM", - "pinKey": "ByZ0o0HyOz" - } - }, - "B1RgJhwr-_z": { - "id": "B1RgJhwr-_z", - "output": { - "nodeId": "rkxJ2vrbOG", - "pinKey": "ryNjTHyOz" - }, - "input": { - "nodeId": "S112Prb_f", + "nodeId": "SJm79rXOz", "pinKey": "H13YRHyOM" - } - }, - "ry1Zk3DrZuM": { - "id": "ry1Zk3DrZuM", - "output": { - "nodeId": "rkxJ2vrbOG", - "pinKey": "HytsTHkOf" }, "input": { - "nodeId": "S112Prb_f", - "pinKey": "SkUhpHkdf" - } - }, - "SJxZJ3PH-OG": { - "id": "SJxZJ3PH-OG", - "output": { - "nodeId": "rkxJ2vrbOG", - "pinKey": "Hkl2pHkuz" - }, - "input": { - "nodeId": "S112Prb_f", - "pinKey": "S16hpryOG" - } - }, - "ry-ZJ3vH-_M": { - "id": "ry-ZJ3vH-_M", - "output": { - "nodeId": "BJWkhwSbdG", + "nodeId": "Syx7m9BXuM", "pinKey": "ryNjTHyOz" - }, - "input": { - "nodeId": "rkxJ2vrbOG", - "pinKey": "H13YRHyOM" } }, - "ryf-y2DS-_f": { - "id": "ryf-y2DS-_f", + "Hk1bmQcHmOG": { + "id": "Hk1bmQcHmOG", "output": { - "nodeId": "BJWkhwSbdG", - "pinKey": "HytsTHkOf" - }, - "input": { - "nodeId": "rkxJ2vrbOG", + "nodeId": "SJm79rXOz", "pinKey": "SkUhpHkdf" - } - }, - "ryQWkhwS-OM": { - "id": "ryQWkhwS-OM", - "output": { - "nodeId": "BJWkhwSbdG", - "pinKey": "Hkl2pHkuz" }, "input": { - "nodeId": "rkxJ2vrbOG", - "pinKey": "S16hpryOG" + "nodeId": "Syx7m9BXuM", + "pinKey": "HytsTHkOf" } }, - "Hy4-ynvBWdz": { - "id": "Hy4-ynvBWdz", + "H1g-QXcBmdf": { + "id": "H1g-QXcBmdf", "output": { - "nodeId": "ryz12Pr-uG", + "nodeId": "SJm79rXOz", + "pinKey": "S16hpryOG" + }, + "input": { + "nodeId": "Syx7m9BXuM", + "pinKey": "Hkl2pHkuz" + } + }, + "ryWZmX9B7Of": { + "id": "ryWZmX9B7Of", + "output": { + "nodeId": "Syx7m9BXuM", + "pinKey": "H13YRHyOM" + }, + "input": { + "nodeId": "rk-7X5SmdM", "pinKey": "ryNjTHyOz" - }, - "input": { - "nodeId": "BJWkhwSbdG", - "pinKey": "H13YRHyOM" } }, - "ByHZJhwHWOf": { - "id": "ByHZJhwHWOf", + "SJfb7QcHQdG": { + "id": "SJfb7QcHQdG", "output": { - "nodeId": "ryz12Pr-uG", - "pinKey": "HytsTHkOf" - }, - "input": { - "nodeId": "BJWkhwSbdG", + "nodeId": "Syx7m9BXuM", "pinKey": "SkUhpHkdf" - } - }, - "BkIbJhDSZuG": { - "id": "BkIbJhDSZuG", - "output": { - "nodeId": "ryz12Pr-uG", - "pinKey": "Hkl2pHkuz" }, "input": { - "nodeId": "BJWkhwSbdG", - "pinKey": "S16hpryOG" + "nodeId": "rk-7X5SmdM", + "pinKey": "HytsTHkOf" } }, - "SJw-1hPBZ_G": { - "id": "SJw-1hPBZ_G", + "BkQ-7QqSX_G": { + "id": "BkQ-7QqSX_G", "output": { - "nodeId": "BkQy2DS-dM", + "nodeId": "Syx7m9BXuM", + "pinKey": "S16hpryOG" + }, + "input": { + "nodeId": "rk-7X5SmdM", + "pinKey": "Hkl2pHkuz" + } + }, + "S1V-m7qHX_f": { + "id": "S1V-m7qHX_f", + "output": { + "nodeId": "rk-7X5SmdM", + "pinKey": "H13YRHyOM" + }, + "input": { + "nodeId": "HkfQm9HQOG", "pinKey": "ryNjTHyOz" - }, - "input": { - "nodeId": "ryz12Pr-uG", - "pinKey": "H13YRHyOM" } }, - "HyuZyhwSZOM": { - "id": "HyuZyhwSZOM", + "BJrWX79SXuz": { + "id": "BJrWX79SXuz", "output": { - "nodeId": "BkQy2DS-dM", - "pinKey": "HytsTHkOf" - }, - "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "rk-7X5SmdM", "pinKey": "SkUhpHkdf" - } - }, - "ryKWJ3vr-OM": { - "id": "ryKWJ3vr-OM", - "output": { - "nodeId": "BkQy2DS-dM", - "pinKey": "Hkl2pHkuz" }, "input": { - "nodeId": "ryz12Pr-uG", + "nodeId": "HkfQm9HQOG", + "pinKey": "HytsTHkOf" + } + }, + "r18ZQ79rXdf": { + "id": "r18ZQ79rXdf", + "output": { + "nodeId": "rk-7X5SmdM", "pinKey": "S16hpryOG" + }, + "input": { + "nodeId": "HkfQm9HQOG", + "pinKey": "Hkl2pHkuz" + } + }, + "Hkv-XXcrXOG": { + "id": "Hkv-XXcrXOG", + "output": { + "nodeId": "HkfQm9HQOG", + "pinKey": "H13YRHyOM" + }, + "input": { + "nodeId": "HkQX79Hm_f", + "pinKey": "ryNjTHyOz" + } + }, + "ryd-mX5r7_G": { + "id": "ryd-mX5r7_G", + "output": { + "nodeId": "HkfQm9HQOG", + "pinKey": "SkUhpHkdf" + }, + "input": { + "nodeId": "HkQX79Hm_f", + "pinKey": "HytsTHkOf" + } + }, + "BkYZQX9BQOM": { + "id": "BkYZQX9BQOM", + "output": { + "nodeId": "HkfQm9HQOG", + "pinKey": "S16hpryOG" + }, + "input": { + "nodeId": "HkQX79Hm_f", + "pinKey": "Hkl2pHkuz" } } }, diff --git a/workspace/__lib__/xod/bits/bitwise-and/patch.xodp b/workspace/__lib__/xod/bits/bitwise-and/patch.xodp index 19b430ec..5cc75829 100644 --- a/workspace/__lib__/xod/bits/bitwise-and/patch.xodp +++ b/workspace/__lib__/xod/bits/bitwise-and/patch.xodp @@ -1,5 +1,5 @@ { - "description": "Computes bitwise AND of two bytes. A resulting bit at a particular position is 1 only if corresponding bits of inputs are both 1.", + "description": "Computes bitwise AND of two or more bytes. A resulting bit at a particular position is 1 only if corresponding bits of all inputs are 1.", "nodes": [ { "id": "ByjTuuxef", @@ -9,6 +9,14 @@ }, "type": "xod/patch-nodes/input-number" }, + { + "id": "HkpP80W_f", + "position": { + "x": 136, + "y": 102 + }, + "type": "xod/patch-nodes/variadic-1" + }, { "id": "S1YR_dgeG", "position": { diff --git a/workspace/__lib__/xod/bits/bitwise-or/patch.xodp b/workspace/__lib__/xod/bits/bitwise-or/patch.xodp index f171db74..57da643a 100644 --- a/workspace/__lib__/xod/bits/bitwise-or/patch.xodp +++ b/workspace/__lib__/xod/bits/bitwise-or/patch.xodp @@ -1,11 +1,19 @@ { - "description": "Computes bitwise OR of two bytes. A resulting bit at a particular position is 0 only if corresponding bits of inputs are both 0.", + "description": "Computes bitwise OR of two or more bytes. A resulting bit at a particular position is 0 only if all corresponding bits of inputs are 0.", "nodes": [ + { + "id": "HkiYIAWuz", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, { "id": "SkC1aTZeM", "position": { - "x": 33, - "y": -1 + "x": 34, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, @@ -20,8 +28,8 @@ { "id": "r1zA16pbxM", "position": { - "x": -1, - "y": -1 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, diff --git a/workspace/__lib__/xod/bits/bitwise-xor/patch.xodp b/workspace/__lib__/xod/bits/bitwise-xor/patch.xodp index fbc6fb70..9cfb67b0 100644 --- a/workspace/__lib__/xod/bits/bitwise-xor/patch.xodp +++ b/workspace/__lib__/xod/bits/bitwise-xor/patch.xodp @@ -1,6 +1,14 @@ { - "description": "Computes bitwise XOR of two bytes. A resulting bit at a particular position is 1 only if either of corresponding bits of inputs is 1 and another is 0.", + "description": "Computes bitwise XOR of two or more bytes. A resulting bit at a particular position is 1 only if an odd number of corresponding bits of inputs is 1.", "nodes": [ + { + "id": "B1b5LAbOz", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, { "id": "BkbqIa6ZgM", "position": { diff --git a/workspace/__lib__/xod/core/add/patch.cpp b/workspace/__lib__/xod/core/add/patch.cpp index 9bab0b16..8604ea5f 100644 --- a/workspace/__lib__/xod/core/add/patch.cpp +++ b/workspace/__lib__/xod/core/add/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto x = getValue(ctx); - auto y = getValue(ctx); - emitValue(ctx, x + y); + auto x = getValue(ctx); + auto y = getValue(ctx); + emitValue(ctx, x + y); } diff --git a/workspace/__lib__/xod/core/add/patch.xodp b/workspace/__lib__/xod/core/add/patch.xodp index a4a915b7..50210314 100644 --- a/workspace/__lib__/xod/core/add/patch.xodp +++ b/workspace/__lib__/xod/core/add/patch.xodp @@ -1,21 +1,27 @@ { - "description": "Adds two numbers", + "description": "Adds numbers", "nodes": [ { "id": "BJnQUR_BwyZ", - "label": "X", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, { - "id": "HkqmLAOrD1W", - "label": "Y", + "id": "By-kyWjDG", "position": { - "x": 138, - "y": 16 + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, + { + "id": "HkqmLAOrD1W", + "position": { + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, @@ -24,10 +30,9 @@ "__in__": 0 }, "id": "SyomIRurDJ-", - "label": "SUM", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-number" }, diff --git a/workspace/__lib__/xod/core/and/patch.cpp b/workspace/__lib__/xod/core/and/patch.cpp index 96dbf291..013a130b 100644 --- a/workspace/__lib__/xod/core/and/patch.cpp +++ b/workspace/__lib__/xod/core/and/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto a = getValue(ctx); - auto b = getValue(ctx); - emitValue(ctx, a && b); + auto a = getValue(ctx); + auto b = getValue(ctx); + emitValue(ctx, a && b); } diff --git a/workspace/__lib__/xod/core/and/patch.xodp b/workspace/__lib__/xod/core/and/patch.xodp index 52592dd5..ec248014 100644 --- a/workspace/__lib__/xod/core/and/patch.xodp +++ b/workspace/__lib__/xod/core/and/patch.xodp @@ -1,24 +1,22 @@ { - "description": "Outputs false if and only if both inputs are true", + "description": "Outputs true if and only if all inputs are true", "nodes": [ { "boundValues": { "__in__": false }, "id": "B1gN80uHvk-", - "label": "AND", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-boolean" }, { "id": "SJMVU0urvkZ", - "label": "A", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, @@ -32,12 +30,19 @@ }, { "id": "r1bVLR_BPJW", - "label": "B", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" + }, + { + "id": "ry_ukWsPM", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" } ] } diff --git a/workspace/__lib__/xod/core/any/patch.cpp b/workspace/__lib__/xod/core/any/patch.cpp index 99cb6986..20506fa5 100644 --- a/workspace/__lib__/xod/core/any/patch.cpp +++ b/workspace/__lib__/xod/core/any/patch.cpp @@ -4,8 +4,8 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - bool p1 = isInputDirty(ctx); - bool p2 = isInputDirty(ctx); + bool p1 = isInputDirty(ctx); + bool p2 = isInputDirty(ctx); if (p1 || p2) - emitValue(ctx, true); + emitValue(ctx, true); } diff --git a/workspace/__lib__/xod/core/any/patch.xodp b/workspace/__lib__/xod/core/any/patch.xodp index 0ffc9268..359a67a1 100644 --- a/workspace/__lib__/xod/core/any/patch.xodp +++ b/workspace/__lib__/xod/core/any/patch.xodp @@ -6,22 +6,28 @@ "__in__": false }, "id": "ByHmL0uHPk-", - "label": "ANY", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-pulse" }, { "id": "ByU7LRuSPkW", - "label": "P2", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-pulse" }, + { + "id": "HJIw1ZsPz", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, { "id": "noNativeImpl", "position": { @@ -32,10 +38,9 @@ }, { "id": "ryv7IRdSP1b", - "label": "P1", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-pulse" } diff --git a/workspace/__lib__/xod/core/concat/patch.cpp b/workspace/__lib__/xod/core/concat/patch.cpp index 80b4ef18..03c5f516 100644 --- a/workspace/__lib__/xod/core/concat/patch.cpp +++ b/workspace/__lib__/xod/core/concat/patch.cpp @@ -9,8 +9,8 @@ struct State { void evaluate(Context ctx) { auto state = getState(ctx); - auto head = getValue(ctx); - auto tail = getValue(ctx); + auto head = getValue(ctx); + auto tail = getValue(ctx); state->view = ConcatListView(head, tail); - emitValue(ctx, XString(&state->view)); + emitValue(ctx, XString(&state->view)); } diff --git a/workspace/__lib__/xod/core/concat/patch.xodp b/workspace/__lib__/xod/core/concat/patch.xodp index 3049a7ae..ede0767d 100644 --- a/workspace/__lib__/xod/core/concat/patch.xodp +++ b/workspace/__lib__/xod/core/concat/patch.xodp @@ -1,40 +1,45 @@ { - "description": "Concatenates (adds together) two strings", + "description": "Concatenates (adds together) strings", "nodes": [ { "id": "Bk_h9jpZW", "position": { - "x": 138, - "y": 120 + "x": 0, + "y": 102 }, "type": "xod/patch-nodes/not-implemented-in-xod" }, { "id": "BkeKcj6ZZ", - "label": "TAIL", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-string" }, { "id": "Hkqu9oaWb", - "label": "HEAD", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-string" }, { "id": "rksccsp-W", - "label": "STR", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-string" + }, + { + "id": "ry63AlsPf", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" } ] } diff --git a/workspace/__lib__/xod/core/discretize/patch.xodp b/workspace/__lib__/xod/core/discretize/patch.xodp new file mode 100644 index 00000000..be13f42b --- /dev/null +++ b/workspace/__lib__/xod/core/discretize/patch.xodp @@ -0,0 +1,155 @@ +{ + "description": "Rounds input `X` up to the first threshold `T0`, `T1`, ..., `Tš‘›` greater or equal to the `X`. If `X` is even greater than the last threshold, the value is round down to it.", + "links": [ + { + "id": "BJqR9pWYZ", + "input": { + "nodeId": "ryua56WYb", + "pinKey": "r1AgIROHDJW" + }, + "output": { + "nodeId": "r1SqqabFZ", + "pinKey": "__out__" + } + }, + { + "id": "HJ0_LU7Oz", + "input": { + "nodeId": "rkVicaZFZ", + "pinKey": "__in__" + }, + "output": { + "nodeId": "ryLFq6btW", + "pinKey": "__out__" + } + }, + { + "id": "HJPC5T-FZ", + "input": { + "nodeId": "ryua56WYb", + "pinKey": "ryTeUROHD1b" + }, + "output": { + "nodeId": "rJl5qpZYZ", + "pinKey": "__out__" + } + }, + { + "id": "Hkc35TZKb", + "input": { + "nodeId": "HJw2cTbFW", + "pinKey": "SJqZ8COrDkW" + }, + "output": { + "nodeId": "r1SqqabFZ", + "pinKey": "__out__" + } + }, + { + "id": "Sk_yopZY-", + "input": { + "nodeId": "rkpc9pZYb", + "pinKey": "__in__" + }, + "output": { + "nodeId": "ryua56WYb", + "pinKey": "S13xLCuHvkW" + } + }, + { + "id": "r1325T-tb", + "input": { + "nodeId": "HJw2cTbFW", + "pinKey": "HJjZLRdBw1-" + }, + "output": { + "nodeId": "ryLFq6btW", + "pinKey": "__out__" + } + }, + { + "id": "ryZR5aWKW", + "input": { + "nodeId": "ryua56WYb", + "pinKey": "S1yZIA_rDJZ" + }, + "output": { + "nodeId": "HJw2cTbFW", + "pinKey": "HktZUCdrPkZ" + } + } + ], + "nodes": [ + { + "id": "HJw2cTbFW", + "position": { + "x": 68, + "y": 102 + }, + "type": "@/less" + }, + { + "id": "SyLXO0Wuz", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, + { + "id": "r1SqqabFZ", + "label": "T1", + "position": { + "x": 204, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "id": "rJl5qpZYZ", + "label": "T0", + "position": { + "x": 170, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "description": "Utility output needed for expanding node. Shoud be ignored by the end user.", + "id": "rkVicaZFZ", + "label": "_", + "position": { + "x": 34, + "y": 306 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "description": "The rounding result. Equals to one of Tx.", + "id": "rkpc9pZYb", + "label": "T", + "position": { + "x": 136, + "y": 306 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "id": "ryLFq6btW", + "label": "X", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "id": "ryua56WYb", + "position": { + "x": 136, + "y": 204 + }, + "type": "@/if-else" + } + ] +} diff --git a/workspace/__lib__/xod/core/multiply/patch.cpp b/workspace/__lib__/xod/core/multiply/patch.cpp index b293718d..e01694c3 100644 --- a/workspace/__lib__/xod/core/multiply/patch.cpp +++ b/workspace/__lib__/xod/core/multiply/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto x = getValue(ctx); - auto y = getValue(ctx); - emitValue(ctx, x * y); + auto x = getValue(ctx); + auto y = getValue(ctx); + emitValue(ctx, x * y); } diff --git a/workspace/__lib__/xod/core/multiply/patch.xodp b/workspace/__lib__/xod/core/multiply/patch.xodp index aef956c7..dd577c5f 100644 --- a/workspace/__lib__/xod/core/multiply/patch.xodp +++ b/workspace/__lib__/xod/core/multiply/patch.xodp @@ -1,12 +1,11 @@ { - "description": "Multiplies two numbers", + "description": "Multiplies numbers", "nodes": [ { "id": "B1GfLR_SPk-", - "label": "X", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, @@ -15,27 +14,33 @@ "__in__": 0 }, "id": "BkQzLCurwJZ", - "label": "PROD", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-number" }, { - "id": "SJ4zUC_BD1-", - "label": "Y", + "id": "H1eCJbsPf", "position": { - "x": 138, - "y": 16 + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, + { + "id": "SJ4zUC_BD1-", + "position": { + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, { "id": "noNativeImpl", "position": { - "x": 100, - "y": 100 + "x": 102, + "y": 102 }, "type": "xod/patch-nodes/not-implemented-in-xod" } diff --git a/workspace/__lib__/xod/core/nand/patch.cpp b/workspace/__lib__/xod/core/nand/patch.cpp index b2251c23..b043c84c 100644 --- a/workspace/__lib__/xod/core/nand/patch.cpp +++ b/workspace/__lib__/xod/core/nand/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto a = getValue(ctx); - auto b = getValue(ctx); - emitValue(ctx, !(a && b)); + auto a = getValue(ctx); + auto b = getValue(ctx); + emitValue(ctx, !(a && b)); } diff --git a/workspace/__lib__/xod/core/nand/patch.xodp b/workspace/__lib__/xod/core/nand/patch.xodp index cecef38c..f1750c76 100644 --- a/workspace/__lib__/xod/core/nand/patch.xodp +++ b/workspace/__lib__/xod/core/nand/patch.xodp @@ -1,21 +1,27 @@ { - "description": "Outputs false if and only if both inputs are true", + "description": "Outputs false if and only if all inputs are true", "nodes": [ { - "id": "BkwGIROSw1Z", - "label": "A", + "id": "BJbWl-jDG", "position": { - "x": 10, - "y": 16 + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, + { + "id": "BkwGIROSw1Z", + "position": { + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, { "id": "HkHG8COBPJ-", - "label": "B", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, @@ -32,10 +38,9 @@ "__in__": false }, "id": "r18G80_Hvyb", - "label": "NAND", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-boolean" } diff --git a/workspace/__lib__/xod/core/nor/patch.cpp b/workspace/__lib__/xod/core/nor/patch.cpp index b2b205a9..1078b846 100644 --- a/workspace/__lib__/xod/core/nor/patch.cpp +++ b/workspace/__lib__/xod/core/nor/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto a = getValue(ctx); - auto b = getValue(ctx); - emitValue(ctx, !(a || b)); + auto a = getValue(ctx); + auto b = getValue(ctx); + emitValue(ctx, !(a || b)); } diff --git a/workspace/__lib__/xod/core/nor/patch.xodp b/workspace/__lib__/xod/core/nor/patch.xodp index 7c5ecc9c..503899b2 100644 --- a/workspace/__lib__/xod/core/nor/patch.xodp +++ b/workspace/__lib__/xod/core/nor/patch.xodp @@ -1,12 +1,11 @@ { - "description": "Outputs true if and only if both inputs are false", + "description": "Outputs true if and only if all inputs are false", "nodes": [ { "id": "S1dG8AOBPJW", - "label": "B", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, @@ -20,22 +19,28 @@ }, { "id": "r1tz8CdBDkb", - "label": "A", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, + { + "id": "rJWMxZjPM", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, { "boundValues": { "__in__": false }, "id": "rJqfIRdHwkW", - "label": "NOR", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-boolean" } diff --git a/workspace/__lib__/xod/core/nth-number/patch.xodp b/workspace/__lib__/xod/core/nth-number/patch.xodp new file mode 100644 index 00000000..d93ca1ca --- /dev/null +++ b/workspace/__lib__/xod/core/nth-number/patch.xodp @@ -0,0 +1,169 @@ +{ + "description": "Selects either `X0` or `X1` based on `IDX` index value.", + "links": [ + { + "id": "BkCNBaWFW", + "input": { + "nodeId": "SJrESpZKW", + "pinKey": "r1AgIROHDJW" + }, + "output": { + "nodeId": "BkGyBpZKZ", + "pinKey": "__out__" + } + }, + { + "id": "Hk64BaWKZ", + "input": { + "nodeId": "SJrESpZKW", + "pinKey": "ryTeUROHD1b" + }, + "output": { + "nodeId": "S13CNpbK-", + "pinKey": "__out__" + } + }, + { + "id": "SJX4STWYb", + "input": { + "nodeId": "rJcQrTWtZ", + "pinKey": "HJjZLRdBw1-" + }, + "output": { + "nodeId": "rJXCVpWtZ", + "pinKey": "__out__" + } + }, + { + "id": "rJGSBpbFZ", + "input": { + "nodeId": "SJrESpZKW", + "pinKey": "S1yZIA_rDJZ" + }, + "output": { + "nodeId": "rJcQrTWtZ", + "pinKey": "HktZUCdrPkZ" + } + }, + { + "id": "rJYVHTbYb", + "input": { + "nodeId": "rJCJSpbt-", + "pinKey": "__in__" + }, + "output": { + "nodeId": "SJrESpZKW", + "pinKey": "S13xLCuHvkW" + } + }, + { + "id": "ryWq4yXOG", + "input": { + "nodeId": "HyNBEJXdG", + "pinKey": "__in__" + }, + "output": { + "nodeId": "HywtN1QdM", + "pinKey": "HyRmUCdBDkZ" + } + }, + { + "id": "rymc4kmuf", + "input": { + "nodeId": "HywtN1QdM", + "pinKey": "BypX80uSD1Z" + }, + "output": { + "nodeId": "rJXCVpWtZ", + "pinKey": "__out__" + } + } + ], + "nodes": [ + { + "id": "BkGyBpZKZ", + "label": "X1", + "position": { + "x": 204, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "description": "Utility output needed for expanding node. Shoud be ignored by the end user.\n", + "id": "HyNBEJXdG", + "label": "_", + "position": { + "x": 34, + "y": 306 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "boundValues": { + "rkJ4URuHDJ-": 1 + }, + "id": "HywtN1QdM", + "position": { + "x": 34, + "y": 204 + }, + "type": "@/subtract" + }, + { + "id": "S13CNpbK-", + "label": "X0", + "position": { + "x": 170, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "id": "SJrESpZKW", + "position": { + "x": 136, + "y": 204 + }, + "type": "@/if-else" + }, + { + "description": "The selected value. Equals to one of `Xi` input.", + "id": "rJCJSpbt-", + "position": { + "x": 136, + "y": 306 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "description": "Index to select. All values below 1 are considered to be 0. Values of 1 and above are considered to be 1.", + "id": "rJXCVpWtZ", + "label": "IDX", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "boundValues": { + "SJqZ8COrDkW": 1 + }, + "id": "rJcQrTWtZ", + "position": { + "x": 102, + "y": 102 + }, + "type": "@/less" + }, + { + "id": "ryJ0VH7Of", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + } + ] +} diff --git a/workspace/__lib__/xod/core/or/patch.cpp b/workspace/__lib__/xod/core/or/patch.cpp index 482225e8..8728f0b3 100644 --- a/workspace/__lib__/xod/core/or/patch.cpp +++ b/workspace/__lib__/xod/core/or/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto a = getValue(ctx); - auto b = getValue(ctx); - emitValue(ctx, a || b); + auto a = getValue(ctx); + auto b = getValue(ctx); + emitValue(ctx, a || b); } diff --git a/workspace/__lib__/xod/core/or/patch.xodp b/workspace/__lib__/xod/core/or/patch.xodp index 4a2f70fa..66932028 100644 --- a/workspace/__lib__/xod/core/or/patch.xodp +++ b/workspace/__lib__/xod/core/or/patch.xodp @@ -1,21 +1,27 @@ { - "description": "Outputs false if and only if both inputs are false", + "description": "Outputs false if and only if all inputs are false", "nodes": [ { - "id": "BJaG80urD1-", - "label": "A", + "id": "BJS2bbsPG", "position": { - "x": 10, - "y": 16 + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" + }, + { + "id": "BJaG80urD1-", + "position": { + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, { "id": "HJCfI0dBDkb", - "label": "B", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, @@ -24,10 +30,9 @@ "__in__": false }, "id": "SJyXI0OrD1-", - "label": "OR", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-boolean" }, diff --git a/workspace/__lib__/xod/core/select/patch.xodp b/workspace/__lib__/xod/core/select/patch.xodp index 4f79aaa6..47e3b47d 100644 --- a/workspace/__lib__/xod/core/select/patch.xodp +++ b/workspace/__lib__/xod/core/select/patch.xodp @@ -1,5 +1,5 @@ { - "description": "Outputs either `X1` or `X2` value based on which pulse came last — `S1` or `S2`. By default outputs `X1`.", + "description": "Outputs `Xš‘›` value based on which `Sš‘›` pulse came last. By default outputs `X1`.", "links": [ { "id": "BkDeLCaL-", @@ -23,6 +23,17 @@ "pinKey": "__out__" } }, + { + "id": "S1c4DAWdf", + "input": { + "nodeId": "BJ97PAWOM", + "pinKey": "ByU7LRuSPkW" + }, + "output": { + "nodeId": "rJUjrCTUb", + "pinKey": "__out__" + } + }, { "id": "Sk-xI0pL-", "input": { @@ -34,6 +45,17 @@ "pinKey": "__out__" } }, + { + "id": "SkKEw0b_M", + "input": { + "nodeId": "BJ97PAWOM", + "pinKey": "ryv7IRdSP1b" + }, + "output": { + "nodeId": "rkmiHCaIZ", + "pinKey": "__out__" + } + }, { "id": "SkSgU0TLb", "input": { @@ -56,6 +78,17 @@ "pinKey": "__out__" } }, + { + "id": "rkVSvAbdM", + "input": { + "nodeId": "rkWHDAW_f", + "pinKey": "__in__" + }, + "output": { + "nodeId": "BJ97PAWOM", + "pinKey": "ByHmL0uHPk-" + } + }, { "id": "rysRHCaIb", "input": { @@ -69,28 +102,44 @@ } ], "nodes": [ + { + "id": "BJ97PAWOM", + "position": { + "x": 408, + "y": 204 + }, + "type": "@/any" + }, + { + "id": "BkiBD0buG", + "position": { + "x": 476, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-2" + }, { "id": "S10qrR6UZ", "label": "X1", "position": { - "x": 10, - "y": 16 + "x": 68, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, { "id": "S1oJLRpLW", "position": { - "x": 138, - "y": 224 + "x": 102, + "y": 204 }, "type": "@/if-else" }, { "id": "S1yaHC6UW", "position": { - "x": 138, - "y": 328 + "x": 102, + "y": 306 }, "type": "xod/patch-nodes/output-number" }, @@ -98,17 +147,25 @@ "id": "rJUjrCTUb", "label": "S2", "position": { - "x": 394, - "y": 16 + "x": 340, + "y": 0 }, "type": "xod/patch-nodes/input-pulse" }, + { + "id": "rkWHDAW_f", + "position": { + "x": 408, + "y": 306 + }, + "type": "xod/patch-nodes/output-pulse" + }, { "id": "rkmiHCaIZ", "label": "S1", "position": { - "x": 266, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-pulse" }, @@ -116,16 +173,16 @@ "id": "rygjH06LW", "label": "X2", "position": { - "x": 138, - "y": 16 + "x": 272, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, { "id": "ryj6SCpL-", "position": { - "x": 266, - "y": 224 + "x": 238, + "y": 204 }, "type": "@/flip-flop" } diff --git a/workspace/__lib__/xod/core/subtract/patch.cpp b/workspace/__lib__/xod/core/subtract/patch.cpp index 71b34369..267bba38 100644 --- a/workspace/__lib__/xod/core/subtract/patch.cpp +++ b/workspace/__lib__/xod/core/subtract/patch.cpp @@ -9,5 +9,5 @@ struct State { void evaluate(Context ctx) { auto x = getValue(ctx); auto y = getValue(ctx); - emitValue(ctx, x - y); + emitValue(ctx, x - y); } diff --git a/workspace/__lib__/xod/core/subtract/patch.xodp b/workspace/__lib__/xod/core/subtract/patch.xodp index 6d4c4bdf..4ea2748c 100644 --- a/workspace/__lib__/xod/core/subtract/patch.xodp +++ b/workspace/__lib__/xod/core/subtract/patch.xodp @@ -5,8 +5,8 @@ "id": "BypX80uSD1Z", "label": "X", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-number" }, @@ -15,18 +15,17 @@ "__in__": 0 }, "id": "HyRmUCdBDkZ", - "label": "DIFF", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-number" }, { "id": "noNativeImpl", "position": { - "x": 100, - "y": 100 + "x": 0, + "y": 102 }, "type": "xod/patch-nodes/not-implemented-in-xod" }, @@ -34,10 +33,18 @@ "id": "rkJ4URuHDJ-", "label": "Y", "position": { - "x": 138, - "y": 16 + "x": 102, + "y": 0 }, "type": "xod/patch-nodes/input-number" + }, + { + "id": "ry8ts1m_f", + "position": { + "x": 204, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" } ] } diff --git a/workspace/__lib__/xod/core/xor/patch.cpp b/workspace/__lib__/xod/core/xor/patch.cpp index 0aa10f5d..95f42a14 100644 --- a/workspace/__lib__/xod/core/xor/patch.cpp +++ b/workspace/__lib__/xod/core/xor/patch.cpp @@ -7,7 +7,7 @@ struct State { {{ GENERATED_CODE }} void evaluate(Context ctx) { - auto a = getValue(ctx); - auto b = getValue(ctx); - emitValue(ctx, a != b); + auto a = getValue(ctx); + auto b = getValue(ctx); + emitValue(ctx, a != b); } diff --git a/workspace/__lib__/xod/core/xor/patch.xodp b/workspace/__lib__/xod/core/xor/patch.xodp index d0cc1dda..83ce07b9 100644 --- a/workspace/__lib__/xod/core/xor/patch.xodp +++ b/workspace/__lib__/xod/core/xor/patch.xodp @@ -3,10 +3,9 @@ "nodes": [ { "id": "HkOV8CdSvyW", - "label": "A", "position": { - "x": 10, - "y": 16 + "x": 0, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, @@ -15,29 +14,35 @@ "__in__": false }, "id": "Hkw48AdSPyb", - "label": "XOR", "position": { - "x": 10, - "y": 224 + "x": 0, + "y": 204 }, "type": "xod/patch-nodes/output-boolean" }, { "id": "SkKNUR_SwyW", - "label": "B", "position": { - "x": 138, - "y": 16 + "x": 136, + "y": 0 }, "type": "xod/patch-nodes/input-boolean" }, { "id": "noNativeImpl", "position": { - "x": 100, - "y": 100 + "x": 102, + "y": 102 }, "type": "xod/patch-nodes/not-implemented-in-xod" + }, + { + "id": "r15nxZjvM", + "position": { + "x": 272, + "y": 0 + }, + "type": "xod/patch-nodes/variadic-1" } ] }