From 01285e95223ad9c34375177c4f037c26f85addcb Mon Sep 17 00:00:00 2001 From: Saksham Gupta Date: Thu, 27 Jul 2023 13:28:21 +0530 Subject: [PATCH] Adding tests (#180) * Update main.yml - adding emp tests * merging mlinf branch for updated testing * adding first test lenet_mnist llama & helper files modified * added hinet test llama * chexpert added * lenet ct added to workflow * lenet ct added to workflow * onnxbridge workflow dependency added * Update onnx_bridge.yml * Update onnx_bridge.yml * Update onnx_bridge.yml * update in utils * Update onnx_bridge.yml * requirement version changed * requirement version changed * requirement version changed * Update onnx_bridge.yml * Update onnx_bridge.yml * Update onnx_bridge.yml * python ->python3 * sytorch dependency added to workflow * updated workflow * updated workflow * updated workflow * cmake install in workflow * Update requirements.txt * onnxbridge docker image in onnxbridge workflow * added tests for hinet and lenet -> ct & secure * updated names in workflow * Update onnx_bridge.yml * updated ezpc tests script * updated ezpc tests script * main workflow updated * main workflow updated * main workflow updated * main workflow updated * main workflow updated * main workflow updated * ci testing fixed for ABY * sleep added in aby tests * modifying aby tests * added tests with batch sizes in lenet and hinet * github actions updated for batch size onnxbridge & tf tests discontinued & main->athos * unet2d bug fix * Onnxbridge wrapper- onnxbridge-secfloat issues fixed (#183) * Work in progress. Fixing ONNXBridge files * Added wrapper functions and removed autos * Added edits to Secflot source * Added BatchNorm and AvgPool implementation. Fixed func_calls.py * Checked cleartext library is working * Added missing link_secfloat_cleartext.cpp * Added concat metaprogramming * corrected compile_secfloat script * Fixed error in filter shape * cifar now working -> relu fixed --------- Co-authored-by: Anwesh Bhattacharya * secfloat tests added for lenet and hinet * added dependency * added dependency * removing hinet test from actions, because of out of memory error * removing hinet test from actions, because of out of memory error * maxpool padding added * removing unwanted changes * paading not implemented in secfloat maxpool as of now --------- Co-authored-by: Anwesh Bhattacharya --- .github/workflows/{main.yml => athos.yml} | 112 +- .github/workflows/onnx_bridge.yml | 227 + EzPC/EzPC/compile_aby.sh | 2 +- EzPC/EzPC/runemptests.sh | 1 + EzPC/EzPC/runtests.sh | 14 +- OnnxBridge/README.md | 2 +- OnnxBridge/Secfloat/backendRep.py | 32 +- OnnxBridge/Secfloat/compile_secfloat.sh | 7 +- OnnxBridge/Secfloat/demo/Readme.md | 8 +- OnnxBridge/Secfloat/func_calls.py | 24 +- .../lib_cleartext/cleartext_common.cpp | 10051 +--------------- .../lib_cleartext/cleartext_inout.cpp | 24 +- .../lib_cleartext/link_secfloat_cleartext.cpp | 438 + OnnxBridge/Secfloat/lib_secfloat/common.cpp | 9636 +-------------- OnnxBridge/Secfloat/lib_secfloat/inout.cpp | 24 +- .../Secfloat/lib_secfloat/link_secfloat.cpp | 528 +- OnnxBridge/backend.py | 2 +- OnnxBridge/helper/compare_np_arrs.py | 4 +- OnnxBridge/helper/make_np_arr.py | 14 +- OnnxBridge/helper/run_onnx.py | 8 +- OnnxBridge/requirements.txt | 2 +- OnnxBridge/tests/conftest.py | 90 + OnnxBridge/tests/test_pipeline.py | 98 + OnnxBridge/tests/utils.py | 156 + OnnxBridge/utils/concat.py | 104 + OnnxBridge/utils/optimizations.py | 6 +- SCI/src/cleartext_library_float.cpp | 112 + SCI/src/cleartext_library_float.h | 18 + SCI/src/library_float.h | 34 +- SCI/src/library_float_beacon.cpp | 135 +- SCI/src/library_float_common.cpp | 333 +- SCI/src/library_float_secfloat.cpp | 133 + 32 files changed, 2425 insertions(+), 19954 deletions(-) rename .github/workflows/{main.yml => athos.yml} (82%) create mode 100644 .github/workflows/onnx_bridge.yml create mode 100644 OnnxBridge/Secfloat/lib_cleartext/link_secfloat_cleartext.cpp create mode 100644 OnnxBridge/tests/conftest.py create mode 100644 OnnxBridge/tests/test_pipeline.py create mode 100644 OnnxBridge/tests/utils.py create mode 100644 OnnxBridge/utils/concat.py diff --git a/.github/workflows/main.yml b/.github/workflows/athos.yml similarity index 82% rename from .github/workflows/main.yml rename to .github/workflows/athos.yml index e3814278..a4ab5f67 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/athos.yml @@ -1,4 +1,4 @@ -name: CI Testing +name: Athos CI Testing # Controls when the workflow will run on: @@ -12,8 +12,8 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" - ABY-and-EMP: + + ABY: # The type of runner that the job will run on runs-on: ubuntu-latest container: @@ -31,8 +31,8 @@ jobs: uses: actions/checkout@v3 with: submodules: 'true' - - - name: Setup and Test EMP + + - name: Setup and Test ABY env: HOME: /root OPAM_SWITCH_PREFIX: /root/.opam/4.10.0 @@ -41,31 +41,55 @@ jobs: MANPATH: :/root/.opam/4.10.0/man PATH: /root/.opam/4.10.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run: | - pwd - cd EzPC/EzPC/ - make - wget https://raw.githubusercontent.com/emp-toolkit/emp-readme/master/scripts/install.py - python install.py --deps --tool --ot --sh2pc - rm -rf install.py - cd ../../ - - - name: Setup and Test ABY - env: - HOME: /root - if: always() - run: | + cd EzPC/EzPC/ git clone --recursive https://github.com/encryptogroup/ABY.git cd ABY/ mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=./install -DABY_BUILD_EXE=On .. cmake --build . --target install --parallel cd ../.. - cd EzPC/EzPC/ eval $(opam config env) + make chmod +x runtests.sh make runtest cd ../.. - shell: bash + + EMP: + runs-on: ubuntu-latest + container: + image: drunkenlegend/ezpcsetup:latest + steps: + + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Setup and Test EMP + env: + HOME: /root + OPAM_SWITCH_PREFIX: /root/.opam/4.10.0 + CAML_LD_LIBRARY_PATH: /root/.opam/4.10.0/lib/stublibs:/root/.opam/4.10.0/lib/ocaml/stublibs:/root/.opam/4.10.0/lib/ocaml + OCAML_TOPLEVEL_PATH: /root/.opam/4.10.0/lib/toplevel + MANPATH: :/root/.opam/4.10.0/man + PATH: /root/.opam/4.10.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + run: | + pwd + cd EzPC/EzPC/ + make + wget https://raw.githubusercontent.com/emp-toolkit/emp-readme/master/scripts/install.py + python install.py --deps --tool --ot --sh2pc + rm -rf install.py + eval $(opam config env) + chmod +x runemptests.sh + ./runemptests.sh + cd ../../ ONNX-CPP: # The type of runner that the job will run on @@ -146,8 +170,7 @@ jobs: cd Athos/tests/onnx/unittests pytest --backend 2PC_OT shell: bash - - + FSS: # The type of runner that the job will run on runs-on: ubuntu-latest @@ -197,50 +220,5 @@ jobs: cd FSS/tests ./runall.sh - - - - TF-SCI-OT: - # The type of runner that the job will run on - runs-on: ubuntu-latest - container: - image: drunkenlegend/ezpcsetup:latest - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - - - name: Update Git - run: | - add-apt-repository ppa:git-core/ppa -y - apt-get update - apt-get install git -y - - name: Checkout repository - uses: actions/checkout@v3 - with: - submodules: 'true' - - name: Setup SCI - run: | - cd SCI - mkdir -p build - cd build - cmake -DCMAKE_INSTALL_PREFIX=./install ../ - cmake --build . --target install --parallel - cd ../.. - - - name: Test Athos TF-SCI-OT - if: always() - env: - HOME: /root - OPAM_SWITCH_PREFIX: /root/.opam/4.10.0 - CAML_LD_LIBRARY_PATH: /root/.opam/4.10.0/lib/stublibs:/root/.opam/4.10.0/lib/ocaml/stublibs:/root/.opam/4.10.0/lib/ocaml - OCAML_TOPLEVEL_PATH: /root/.opam/4.10.0/lib/toplevel - MANPATH: :/root/.opam/4.10.0/man - PATH: /root/.opam/4.10.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - run: | - cd EzPC/EzPC/ - make - cd ../.. - cd Athos/tests/tf/unittests - pytest --backend 2PC_OT - shell: bash diff --git a/.github/workflows/onnx_bridge.yml b/.github/workflows/onnx_bridge.yml new file mode 100644 index 00000000..5bd94409 --- /dev/null +++ b/.github/workflows/onnx_bridge.yml @@ -0,0 +1,227 @@ +name: OnnxBridge CI Testing + +# Controls when the workflow will run +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + + LLAMA: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + + - name: LLAMA + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend LLAMA -v -k 'lenet and not batch' + pytest --backend LLAMA -v -k 'hinet and not batch' + shell: bash + + LLAMA-batch: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + + - name: LLAMA Batch + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend LLAMA -v -k 'lenet and batch' --batch_size 2 + pytest --backend LLAMA -v -k 'hinet and batch' --batch_size 5 + shell: bash + + LLAMA-ct: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + + - name: LLAMA Cleartext + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend CLEARTEXT_LLAMA -v -k 'lenet and not batch' + pytest --backend CLEARTEXT_LLAMA -v -k 'hinet and not batch' + pytest --backend CLEARTEXT_LLAMA -v -k 'chexpert and not batch' + shell: bash + + LLAMA-ct-batch: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + + - name: LLAMA Cleartext Batch + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend CLEARTEXT_LLAMA -v -k 'lenet and batch' --batch_size 2 + pytest --backend CLEARTEXT_LLAMA -v -k 'hinet and batch' --batch_size 5 + shell: bash + + Secfloat: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + apt install libgmp-dev libmpfr-dev -y + + - name: Build Secfloat + run: | + cd SCI + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=./install .. + cmake --build . --target install --parallel + cd ../.. + shell: bash + + - name: Secfloat + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend SECFLOAT -v -k "lenet and not batch" + shell: bash + + Secfloat-ct: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: drunkenlegend/onnxbridge:latest + options: --user root + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Update Git + run: | + add-apt-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Install dependencies + run: | + apt-get update -y + apt install libgmp-dev libmpfr-dev -y + + - name: Build Secfloat + run: | + cd SCI + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=./install .. + cmake --build . --target install --parallel + cd ../.. + shell: bash + + - name: Secfloat Cleartext + if: always() + run: | + cd OnnxBridge/tests/ + pytest --backend SECFLOAT_CLEARTEXT -v -k "lenet and not batch" + pytest --backend SECFLOAT_CLEARTEXT -v -k "hinet and not batch" + shell: bash + diff --git a/EzPC/EzPC/compile_aby.sh b/EzPC/EzPC/compile_aby.sh index 46c1dca3..539e815b 100755 --- a/EzPC/EzPC/compile_aby.sh +++ b/EzPC/EzPC/compile_aby.sh @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash ABY_CPP_FILE=$1 EZPC_SRC_PATH=$(dirname $0) diff --git a/EzPC/EzPC/runemptests.sh b/EzPC/EzPC/runemptests.sh index fdcd8181..ba26ff84 100755 --- a/EzPC/EzPC/runemptests.sh +++ b/EzPC/EzPC/runemptests.sh @@ -138,3 +138,4 @@ if [[ "${checks}" == "Failed" ]] then exit 1 fi +exit 0 diff --git a/EzPC/EzPC/runtests.sh b/EzPC/EzPC/runtests.sh index f732432e..9237555a 100755 --- a/EzPC/EzPC/runtests.sh +++ b/EzPC/EzPC/runtests.sh @@ -99,12 +99,15 @@ generateAndDiffCode () { ./compile_aby.sh gen/random_forest0.cpp ./random_forest0 -r 0 & - ./random_forest0 -r 1 > gen_val.txt & + # sleep 10 sec + sleep 10 + ./random_forest0 -r 1 > gen_val.txt wait ./compile_aby.sh test_suite/precompiled_output/random_forest0.cpp ./random_forest0 -r 0 & - ./random_forest0 -r 1 > pre_val.txt & + sleep 10 + ./random_forest0 -r 1 > pre_val.txt wait if cmp -s gen_val.txt pre_val.txt @@ -119,12 +122,14 @@ generateAndDiffCode () { ./compile_aby.sh gen/random_forest_polish0.cpp ./random_forest_polish0 -r 0 & - ./random_forest_polish0 -r 1 > gen_val.txt & + sleep 10 + ./random_forest_polish0 -r 1 > gen_val.txt wait ./compile_aby.sh test_suite/precompiled_output/random_forest_polish0.cpp ./random_forest_polish0 -r 0 & - ./random_forest_polish0 -r 1 > pre_val.txt & + sleep 10 + ./random_forest_polish0 -r 1 > pre_val.txt wait if cmp -s gen_val.txt pre_val.txt @@ -139,6 +144,7 @@ generateAndDiffCode () { then exit 1 fi + exit 0 } generateCodeAndForceCopyForFile () { diff --git a/OnnxBridge/README.md b/OnnxBridge/README.md index 57fb7964..6930c92b 100644 --- a/OnnxBridge/README.md +++ b/OnnxBridge/README.md @@ -72,7 +72,7 @@ cd OnnxBridge python3 main.py --path "/path/to/onnx-file" --generate "executable" --backend SECFLOAT_CLEARTEXT # start inference -cat input_input.inp model_input_weights_.inp | ./model_secfloat_ct +cat input_input.inp model_input_weights.inp | ./model_secfloat_ct ``` #### **LLAMA** diff --git a/OnnxBridge/Secfloat/backendRep.py b/OnnxBridge/Secfloat/backendRep.py index 35d0f6a8..511547a9 100644 --- a/OnnxBridge/Secfloat/backendRep.py +++ b/OnnxBridge/Secfloat/backendRep.py @@ -5,6 +5,10 @@ from Secfloat.func_calls import Operator from utils.nodes import Node, Input, Output from utils.onnx_nodes import OnnxNode +from utils.concat import write_concat_implementations + + +concat_len_list = [] def process_delete_list(program): @@ -118,6 +122,11 @@ def prepare_func(code_list, node, var_dict, value_info, input_taken, indent): operator = getattr(Operator, node.op_type) code_list.append(str(f'{" " * (indent+1)}cout<<"Inside {node.op_type}"< {concat_len_list}") + return code_list @@ -238,6 +251,17 @@ def export_model(self, file_path): self.program_AST, self.var_dict, self.value_info, self.backend, file_path ) + # Check if need to insert concat implementations + if concat_len_list != []: + # import_concat_line = get_concat_implementations(concat_len_list) + include_concat_line = f'#include "{self.file_name}_concat{ct}.cpp" \n\n\n' + write_concat_implementations( + concat_len_list, + self.backend, + self.path + f"/{self.file_name}_concat{ct}.cpp", + ) + code_list = code_list[:1] + [include_concat_line] + code_list[1:] + with open(self.path + f"/{self.file_name}_secfloat{ct}.cpp", "w") as fp: fp.write("\n".join(code_list)) diff --git a/OnnxBridge/Secfloat/compile_secfloat.sh b/OnnxBridge/Secfloat/compile_secfloat.sh index 9f883fc7..dd267d34 100755 --- a/OnnxBridge/Secfloat/compile_secfloat.sh +++ b/OnnxBridge/Secfloat/compile_secfloat.sh @@ -45,21 +45,20 @@ set(CMAKE_MODULE_PATH \${CMAKE_CURRENT_SOURCE_DIR}) find_package(SCI REQUIRED PATHS \"$path/../../SCI/build/install\") add_executable($BINARY_NAME ../$SECFLOAT_CPP_FILE) target_include_directories($BINARY_NAME PUBLIC) -target_compile_options($BINARY_NAME PRIVATE -fconcepts -g) +target_compile_options($BINARY_NAME PRIVATE -fconcepts) target_link_libraries($BINARY_NAME SCI::SCI-SecfloatML ) " > CMakeLists.txt + cmake --log-level=ERROR . cmake --build . --parallel -exit + rm -rf ../$BINARY_NAME mv $BINARY_NAME ../$DIR cd .. rm -rf build_dir - - if [ -e "../$BINARY_NAME" ]; then echo "Compilation failed" exit diff --git a/OnnxBridge/Secfloat/demo/Readme.md b/OnnxBridge/Secfloat/demo/Readme.md index 93335fd9..c9cbe997 100644 --- a/OnnxBridge/Secfloat/demo/Readme.md +++ b/OnnxBridge/Secfloat/demo/Readme.md @@ -27,12 +27,12 @@ python ../../main.py --path "model.onnx" --generate "executable" --backend SECFL ``` This generates : -- A file with model weigths `~/EzPC/OnnxBridge/Secfloat/demo/model_input_weights_.inp` (Secret Server Data) +- A file with model weigths `~/EzPC/OnnxBridge/Secfloat/demo/model_input_weights.inp` (Secret Server Data) - A model output binary : `~/EzPC/OnnxBridge/Secfloat/demo/model_secfloat.out` which needs to be passed to client. Run the following command to start server side computation and wait for client connection: ```bash -./model_secfloat r=2 [port=port] < model_input_weights_.inp +./model_secfloat r=2 [port=port] < model_input_weights.inp ``` # Client Side @@ -63,11 +63,11 @@ This dumps model output as a flattened numpy array(1-D) in output.npy . ## Verify Output To verify if everything is working as expected, run the input image with the model itself using the onnx runtime: ```bash -python ../../helper/run_onnx.py "input.npy" +python ../../helper/run_onnx.py model.onnx "input.npy" ``` It dumps the output in `onnx_output/input.npy` and also prints it on the screen. To compare the both outputs do: ```bash -python ../../helper/compare_np_arrs.py -i onnx_output/input.npy output.npy +python ../../helper/compare_np_arrs.py -i onnx_output/expected.npy output.npy ``` You should get output similar to: ```bash diff --git a/OnnxBridge/Secfloat/func_calls.py b/OnnxBridge/Secfloat/func_calls.py index 3fdb2487..c773f18d 100644 --- a/OnnxBridge/Secfloat/func_calls.py +++ b/OnnxBridge/Secfloat/func_calls.py @@ -115,7 +115,7 @@ def Conv(cls, attributes, inputs, outputs, value_info, var_dict, indent): convadd = "" if len(inputs) == 3: convadd = str( - f"{' ' * indent}ConvAdd(" + f"{' ' * indent}__onnxbridge_ConvAdd(" f"{iterate_list(value_info[outputs[0]][1])}, " f"{var_dict[outputs[0]]}, {var_dict[inputs[2]]}, {var_dict[outputs[0]]}" f");" @@ -123,7 +123,7 @@ def Conv(cls, attributes, inputs, outputs, value_info, var_dict, indent): pass return ( str( - f"{' ' * indent}Conv2DGroupWrapper(" + f"{' ' * indent}__onnxbridge_Conv2DGroupWrapper(" f"{N}, {CI}, {H}, {W}, " f"{filterShape[2]}, {filterShape[3]}, {value_info[inputs[1]][1][0]}, " f"{(iterate_list(pads))}, " @@ -141,14 +141,14 @@ def MaxPool(cls, attributes, inputs, outputs, value_info, var_dict, indent): logger.debug("Inside MaxPool function call.") pads = get_padding(attributes, inputs, outputs, value_info, var_dict) return str( - f"{' ' * indent}MaxPool(" + f"{' ' * indent}__onnxbridge_MaxPool(" f"{iterate_list(value_info[outputs[0]][1])}, " f"{attributes['kernel_shape'][0]}, {attributes['kernel_shape'][1]}, " - f"{iterate_list(pads)}, " f"{attributes['strides'][0]}, {attributes['strides'][1]}, " - f"{iterate_list(value_info[inputs[0]][1])}, " + f"{iterate_list(value_info[inputs[0]][1][-2:])}, " f"{iterate_list([var_dict[x] for x in inputs])}, " - f"{iterate_list([var_dict[x] for x in outputs])}" + f"{iterate_list([var_dict[x] for x in outputs])}, " + f"{iterate_list(pads)}" f");" ) @@ -184,12 +184,12 @@ def AveragePool(cls, attributes, inputs, outputs, value_info, var_dict, indent): logger.debug("Inside AveragePool function call.") pads = get_padding(attributes, inputs, outputs, value_info, var_dict) return str( - f"{' ' * indent}AvgPool(" + f"{' ' * indent}__onnxbridge_AvgPool(" f"{iterate_list(value_info[outputs[0]][1])}, " f"{attributes['kernel_shape'][0]}, {attributes['kernel_shape'][1]}, " - f"{iterate_list(pads)}, " + # f"{iterate_list(pads)}, " f"{attributes['strides'][0]}, {attributes['strides'][1]}, " - f"{iterate_list(value_info[inputs[0]][1])}, " + f"{iterate_list(value_info[inputs[0]][1][-2:])}, " f"{iterate_list([var_dict[x] for x in inputs])}, " f"{iterate_list([var_dict[x] for x in outputs])}" f");" @@ -201,10 +201,10 @@ def GlobalAveragePool( ): logger.debug("Inside GloablAveragePool function call.") return str( - f"{' ' * indent}AvgPool(" + f"{' ' * indent}__onnxbridge_AvgPool(" f"{iterate_list(value_info[outputs[0]][1])}, " - f"{value_info[inputs[0]][1][2]}, {value_info[inputs[0]][1][3]}, 0, 0, 0, 0, 1, 1, " - f"{iterate_list(value_info[inputs[0]][1])}, " + f"{value_info[inputs[0]][1][2]}, {value_info[inputs[0]][1][3]}, 1, 1, " + f"{iterate_list(value_info[inputs[0]][1][-2:])}, " f"{iterate_list([var_dict[x] for x in inputs])}, " f"{iterate_list([var_dict[x] for x in outputs])}" f");" diff --git a/OnnxBridge/Secfloat/lib_cleartext/cleartext_common.cpp b/OnnxBridge/Secfloat/lib_cleartext/cleartext_common.cpp index 2d7f8223..385115e5 100644 --- a/OnnxBridge/Secfloat/lib_cleartext/cleartext_common.cpp +++ b/OnnxBridge/Secfloat/lib_cleartext/cleartext_common.cpp @@ -1,178 +1,22 @@ -#include "cleartext_library_float.h" -#include "cleartext_inout.cpp" - -extern float intToFloat(int32_t m); -extern void Softmax2(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr); -extern void Ln(int32_t s1, vector &inArr, vector &outArr); -extern void getOutDer(int32_t s1, int32_t s2, vector> &batchSoft, vector> &lab, vector> &der); -extern void MatMul(int32_t s1, int32_t s2, int32_t s3, vector> &mat1, vector> &mat2, vector> &mat3); -extern void GemmAdd(int32_t s1, int32_t s2, vector> &prod, vector &bias, vector> &out); -extern void dotProduct2(int32_t s1, int32_t s2, vector> &arr1, vector> &arr2, vector &outArr); -extern void Relu(int32_t s1, vector &inArr, vector &outArr, vector &hotArr); -extern void getBiasDer(int32_t s1, int32_t s2, vector> &der, vector &biasDer); -extern void IfElse(int32_t s1, vector &dat, vector &hot, vector &out, bool flip); -extern void updateWeights(int32_t s, float lr, vector &bias, vector &der); -extern void getLoss(int32_t m, vector &lossTerms, vector &loss); -extern void computeMSELoss(int32_t m, int32_t s, vector> &target, vector> &fwdOut, vector &loss); - -extern void Tanh(int32_t s1, vector &inArr, vector &outArr); - -void ElemWiseAdd(int32_t s1, vector &arr1, vector &arr2, vector &outArr) -{ - for (int i = 0; i < s1; i++) - outArr[i] = arr1[i] + arr2[i]; -} - -void ElemWiseActModelVectorMult(int32_t s1, auto &arr1, auto &arr2, auto &outArr) -{ - for (uint32_t ii = 0; ii < s1; ii++) - { - outArr[ii] = (arr1[ii] * arr2[ii]); - } -} - -void MaxPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t N1, int32_t C1, int32_t imgH, int32_t imgW, auto &inArr, auto &outArr) +void NCHW_to_NHWC(int32_t N, int32_t C, int32_t H, int32_t W, vector>>> &inArr, vector>>> &outArr) { for (uint32_t n = 0; n < N; n++) { for (uint32_t c = 0; c < C; c++) { - int32_t leftTopCornerH = (0 - zPadHLeft); - - int32_t extremeRightBottomCornerH = ((imgH - 1) + zPadHRight); - - int32_t ctH = 0; - - while ((((leftTopCornerH + ksizeH) - 1) <= extremeRightBottomCornerH)) + for (uint32_t h = 0; h < H; h++) { - int32_t leftTopCornerW = (0 - zPadWLeft); - - int32_t extremeRightBottomCornerW = ((imgW - 1) + zPadWRight); - - int32_t ctW = 0; - - while ((((leftTopCornerW + ksizeW) - 1) <= extremeRightBottomCornerW)) + for (uint32_t w = 0; w < W; w++) { - float maxi = 0.0; - - if ((((leftTopCornerH < 0) || (leftTopCornerH >= imgH)) || ((leftTopCornerW < 0) || (leftTopCornerW >= imgW)))) - { - maxi = 0.0; - } - else - { - maxi = inArr[n][c][leftTopCornerH][leftTopCornerW]; - } - for (uint32_t fh = 0; fh < ksizeH; fh++) - { - for (uint32_t fw = 0; fw < ksizeW; fw++) - { - int32_t curPosH = (leftTopCornerH + fh); - - int32_t curPosW = (leftTopCornerW + fw); - - float temp = 0.0; - - if ((((curPosH < 0) || (curPosH >= imgH)) || ((curPosW < 0) || (curPosW >= imgW)))) - { - temp = 0.0; - } - else - { - temp = inArr[n][c][curPosH][curPosW]; - } - maxi = ((maxi - temp) < 0.0) ? temp : maxi; - } - } - outArr[n][c][ctH][ctW] = maxi; - - leftTopCornerW = (leftTopCornerW + strideW); - - ctW = (ctW + 1); + outArr[n][h][w][c] = inArr[n][c][h][w]; } - - leftTopCornerH = (leftTopCornerH + strideH); - - ctH = (ctH + 1); } } } } -void AvgPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t N1, int32_t C1, int32_t imgH, int32_t imgW, auto &inArr, auto &outArr) +void NHWC_to_NCHW(int32_t N, int32_t H, int32_t W, int32_t C, vector>>> &inArr, vector>>> &outArr) { - int32_t rows = (((N * C) * H) * W); - - auto filterAvg = make_vector(rows); - - int32_t rowIdx = 0; - - for (uint32_t n = 0; n < N; n++) - { - for (uint32_t c = 0; c < C; c++) - { - int32_t leftTopCornerH = (0 - zPadHLeft); - - int32_t extremeRightBottomCornerH = ((imgH - 1) + zPadHRight); - - int32_t ctH = 0; - - while ((((leftTopCornerH + ksizeH) - 1) <= extremeRightBottomCornerH)) - { - int32_t leftTopCornerW = (0 - zPadWLeft); - - int32_t extremeRightBottomCornerW = ((imgW - 1) + zPadWRight); - - int32_t ctW = 0; - - while ((((leftTopCornerW + ksizeW) - 1) <= extremeRightBottomCornerW)) - { - float curFilterSum = 0.0; - - for (uint32_t fh = 0; fh < ksizeH; fh++) - { - for (uint32_t fw = 0; fw < ksizeW; fw++) - { - int32_t curPosH = (leftTopCornerH + fh); - - int32_t curPosW = (leftTopCornerW + fw); - - float temp = 0.0; - - if ((((curPosH < 0) || (curPosH >= imgH)) || ((curPosW < 0) || (curPosW >= imgW)))) - { - temp = 0.0; - } - else - { - temp = inArr[n][c][curPosH][curPosW]; - } - curFilterSum = curFilterSum + temp; - } - } - int32_t ksizeH64 = ksizeH; - - int32_t ksizeW64 = ksizeW; - - int32_t filterSz64 = (ksizeH64 * ksizeW64); - - float curFilterAvg = curFilterSum / (float)filterSz64; - - filterAvg[rowIdx] = curFilterAvg; - - rowIdx = (rowIdx + 1); - - leftTopCornerW = (leftTopCornerW + strideW); - - ctW = (ctW + 1); - } - - leftTopCornerH = (leftTopCornerH + strideH); - - ctH = (ctH + 1); - } - } - } for (uint32_t n = 0; n < N; n++) { for (uint32_t c = 0; c < C; c++) @@ -181,467 +25,59 @@ void AvgPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t { for (uint32_t w = 0; w < W; w++) { - outArr[n][c][h][w] = filterAvg[((((((n * C) * H) * W) + ((c * H) * W)) + (h * W)) + w)]; - } - } - } - } -} - -void Relu(int32_t s1, int32_t s2, auto &inArr, auto &outArr) -{ - int32_t size = (s1 * s2); - - auto reshapedInArr = make_vector(size); - - auto reshapedOutArr = make_vector(size); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - int32_t linIdx = ((i1 * s2) + i2); - - reshapedInArr[linIdx] = inArr[i1][i2]; - } - } - Relu(size, reshapedInArr, reshapedOutArr); - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - int32_t linIdx = ((i1 * s2) + i2); - - outArr[i1][i2] = reshapedOutArr[linIdx]; - } - } -} - -void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) -{ - int32_t size = (((s1 * s2) * s3) * s4); - - auto reshapedInArr = make_vector(size); - - auto reshapedOutArr = make_vector(size); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - reshapedInArr[linIdx] = inArr[i1][i2][i3][i4]; - } - } - } - } - - Relu(size, reshapedInArr, reshapedOutArr); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; - } - } - } - } -} - -// void Sigmoid(int32_t s1, int32_t s2, auto &inArr, auto &outArr) -// { -// int32_t size = (s1 * s2); - -// auto reshapedInArr = make_vector(size); - -// auto reshapedOutArr = make_vector(size); - -// for (uint32_t i1 = 0; i1 < s1; i1++) -// { -// for (uint32_t i2 = 0; i2 < s2; i2++) -// { -// int32_t linIdx = ((i1 * s2) + i2); - -// reshapedInArr[linIdx] = inArr[i1][i2]; -// } -// } -// Sigmoid(size, reshapedInArr, reshapedOutArr); -// for (uint32_t i1 = 0; i1 < s1; i1++) -// { -// for (uint32_t i2 = 0; i2 < s2; i2++) -// { -// int32_t linIdx = ((i1 * s2) + i2); - -// outArr[i1][i2] = reshapedOutArr[linIdx]; -// } -// } -// } - -// void Sigmoid(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) -// { -// int32_t size = (((s1 * s2) * s3) * s4); - -// auto reshapedInArr = make_vector(size); - -// auto reshapedOutArr = make_vector(size); - -// for (uint32_t i1 = 0; i1 < s1; i1++) -// { -// for (uint32_t i2 = 0; i2 < s2; i2++) -// { -// for (uint32_t i3 = 0; i3 < s3; i3++) -// { -// for (uint32_t i4 = 0; i4 < s4; i4++) -// { -// int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - -// reshapedInArr[linIdx] = inArr[i1][i2][i3][i4]; -// } -// } -// } -// } - -// Sigmoid(size, reshapedInArr, reshapedOutArr); - -// for (uint32_t i1 = 0; i1 < s1; i1++) -// { -// for (uint32_t i2 = 0; i2 < s2; i2++) -// { -// for (uint32_t i3 = 0; i3 < s3; i3++) -// { -// for (uint32_t i4 = 0; i4 < s4; i4++) -// { -// int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - -// outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; -// } -// } -// } -// } -// } - -// // tanh(x) = 2 * sigmoid(2 * x) - 1 -// void Tanh(int32_t s1, vector &inArr, vector &outArr) -// { - -// const float one = 1.0; -// const float two = 2.0; - -// // 2 * x -// auto twice_input = make_vector(s1); -// for (int i = 0; i < s1; i++) -// { -// twice_input[i] = (inArr[i] * two); -// } - -// // sigmoid(2 * x) -// auto sigmoid_twice_input = make_vector(s1); -// Sigmoid(s1, twice_input, sigmoid_twice_input); - -// // tanh(x) = 2 * sigmoid(2 * x) - 1 -// for (int i = 0; i < s1; i++) -// { -// outArr[i] = (two * sigmoid_twice_input[i]); -// outArr[i] = (outArr[i] - one); -// } -// } - -void Tanh(int32_t s1, int32_t s2, auto &inArr, auto &outArr) -{ - int32_t size = (s1 * s2); - - auto reshapedInArr = make_vector(size); - - auto reshapedOutArr = make_vector(size); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - int32_t linIdx = ((i1 * s2) + i2); - - reshapedInArr[linIdx] = inArr[i1][i2]; - } - } - Tanh(size, reshapedInArr, reshapedOutArr); - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - int32_t linIdx = ((i1 * s2) + i2); - - outArr[i1][i2] = reshapedOutArr[linIdx]; - } - } -} - -void Tanh(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) -{ - int32_t size = (((s1 * s2) * s3) * s4); - - auto reshapedInArr = make_vector(size); - - auto reshapedOutArr = make_vector(size); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - reshapedInArr[linIdx] = inArr[i1][i2][i3][i4]; - } - } - } - } - - Tanh(size, reshapedInArr, reshapedOutArr); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + outArr[n][c][h][w] = inArr[n][h][w][c]; } } } } } -void MatMul2D(int32_t i, int32_t j, int32_t k, auto &A, auto &B, auto &C, bool isA = true) -{ - for (uint32_t i1 = 0; i1 < i; i1++) - { - for (uint32_t i2 = 0; i2 < k; i2++) - { - C[i1][i2] = 0.0; - - for (uint32_t i3 = 0; i3 < j; i3++) - { - C[i1][i2] = (C[i1][i2] + (A[i1][i3] * B[i3][i2])); - } - } - } -} - -void Gemm(int32_t m, int32_t n, int32_t o, int32_t p, float alpha, float beta, int32_t transA, int32_t transB, int32_t x, int32_t k, auto &A, auto &B, auto &C, auto &output) -{ - if (transA) - { - auto tmpA = make_vector(n, m); - for (uint32_t i = 0; i < m; i++) - { - for (uint32_t j = 0; j < n; j++) - { - tmpA[j][i] = A[i][j]; - } - } - A = tmpA; - swap(m, n); - } - if (transB) - { - auto tmpB = make_vector(p, o); - for (uint32_t i = 0; i < o; i++) - { - for (uint32_t j = 0; j < p; j++) - { - tmpB[j][i] = B[i][j]; - } - } - B = tmpB; - swap(o, p); - } - - auto tmp = make_vector(x, k); - MatMul(m, n, p, A, B, tmp); - - GemmAdd(x, k, tmp, C, output); - - // for (uint32_t i0 = 0; i0 < x; i0++) - // { - // for (uint32_t i1 = 0; i1 < k; i1++) - // { - // output[i0][i1] = Add(tmp[i0][i1], C[i1]); - // } - // } -} - -void Flatten(int32_t x, int32_t y, auto &A, auto &output) -{ - (&output) = *reinterpret_cast(A); -} - -void FusedBatchNorm4411(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &multArr, auto &biasArr, auto &outputArr) +void OIFF_to_FFIO(int32_t CO, int32_t CI, int32_t FH, int32_t FW, vector>>> &inArr, vector>>> &outArr) { - int32_t inpSize = (((s1 * s2) * s3) * s4); - - auto inArrReshaped = make_vector(inpSize); - - auto multArrReshaped = make_vector(inpSize); - - auto multExprAns = make_vector(inpSize); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s4; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s2; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - inArrReshaped[linIdx] = inArr[i1][i4][i2][i3]; - - multArrReshaped[linIdx] = multArr[i4]; - } - } - } - } - ElemWiseActModelVectorMult(inpSize, inArrReshaped, multArrReshaped, multExprAns); - for (uint32_t i1 = 0; i1 < s1; i1++) + for (uint32_t o = 0; o < CO; o++) { - for (uint32_t i2 = 0; i2 < s4; i2++) + for (uint32_t i = 0; i < CI; i++) { - for (uint32_t i3 = 0; i3 < s3; i3++) + for (uint32_t fh = 0; fh < FH; fh++) { - for (uint32_t i4 = 0; i4 < s2; i4++) + for (uint32_t fw = 0; fw < FW; fw++) { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - outputArr[i1][i4][i2][i3] = (multExprAns[linIdx] + biasArr[i4]); + outArr[fh][fw][i][o] = inArr[o][i][fh][fw]; } } } } - delete &inArrReshaped; - delete &multArrReshaped; - delete &multExprAns; - delete &biasArr; } -void BatchNormalization(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &multArr, auto &biasArr, auto &outputArr) +void __onnxbridge_MaxPool(int32_t N, int32_t C, int32_t H, int32_t W, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t imgH, int32_t imgW, + vector>>> &inArr, + vector>>> &outArr, + int32_t padHLeft, int32_t padHRight, int32_t padWLeft, int32_t padWRight) { - FusedBatchNorm4411(s1, s2, s3, s4, inArr, multArr, biasArr, outputArr); -} - -void Conv2DReshapeMatMulOPGroup(int32_t N, int32_t finalH, int32_t finalW, int32_t CO, int32_t g, int32_t G, vector> &inputArr, vector>>> &outputArr) -{ - int32_t COG = (CO / G); - int32_t startCO = (g * COG); - for (uint32_t co = 0; co < COG; co++) - { - for (uint32_t n = 0; n < N; n++) - { - for (uint32_t h = 0; h < finalH; h++) - { - for (uint32_t w = 0; w < finalW; w++) - { - outputArr[n][(co + startCO)][h][w] = inputArr[co][((((n * finalH) * finalW) + (h * finalW)) + w)]; - } - } - } - } -} + vector>>> inputArr_reshaped = make_vector(N, imgH, imgW, C); + NCHW_to_NHWC(N, C, imgH, imgW, inArr, inputArr_reshaped); -void Conv2DReshapeFilterGroup(int32_t FH, int32_t FW, int32_t CI, int32_t CO, int32_t g, int32_t G, vector>>> &inputArr, vector> &outputArr) -{ - int32_t CIG = (CI / G); - int32_t COG = (CO / G); - int32_t startCO = (g * COG); + vector>>> outputArr_reshaped = make_vector(N, H, W, C); + MaxPool_nomask(N, imgH, imgW, C, ksizeH, ksizeW, strideH, strideW, H, W, inputArr_reshaped, outputArr_reshaped, padHLeft, padHRight, padWLeft, padWRight); - for (uint32_t co = 0; co < COG; co++) - { - for (uint32_t fh = 0; fh < FH; fh++) - { - for (uint32_t fw = 0; fw < FW; fw++) - { - for (uint32_t ci = 0; ci < CIG; ci++) - { - int32_t linIdx = ((((fh * FW) * CIG) + (fw * CIG)) + ci); - outputArr[co][linIdx] = inputArr[(co + startCO)][ci][fh][fw]; - } - } - } - } + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr); } -void Conv2DReshapeInputGroup(int32_t N, int32_t H, int32_t W, int32_t CI, int32_t FH, int32_t FW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t g, int32_t G, int32_t RRows, int32_t RCols, vector>>> &inputArr, vector> &outputArr) +void __onnxbridge_AvgPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t strideH, int32_t strideW, int32_t imgH, int32_t imgW, vector>>> &inArr, vector>>> &outArr) { - int32_t linIdxFilterMult = 0; - int32_t CIG = (CI / G); - - for (uint32_t n = 0; n < N; n++) - { - int32_t leftTopCornerH = (0 - zPadHLeft); - int32_t extremeRightBottomCornerH = ((H - 1) + zPadHRight); - - while ((((leftTopCornerH + FH) - 1) <= extremeRightBottomCornerH)) - { - int32_t leftTopCornerW = (0 - zPadWLeft); - int32_t extremeRightBottomCornerW = ((W - 1) + zPadWRight); - - while ((((leftTopCornerW + FW) - 1) <= extremeRightBottomCornerW)) - { - for (uint32_t fh = 0; fh < FH; fh++) - { - for (uint32_t fw = 0; fw < FW; fw++) - { - - int32_t curPosH = (leftTopCornerH + fh); - int32_t curPosW = (leftTopCornerW + fw); - float val = 0.0; - int32_t startCI = (g * CIG); + vector>>> inputArr_reshaped = make_vector(N, imgH, imgW, C) ; + NCHW_to_NHWC(N, C, imgH, imgW, inArr, inputArr_reshaped) ; - for (uint32_t ci = 0; ci < CIG; ci++) - { - if ((((curPosH < 0) || (curPosH >= H)) || ((curPosW < 0) || (curPosW >= W)))) - { - val = 0.0; - } - else - { - val = inputArr[n][(ci + startCI)][curPosH][curPosW]; - } + vector>>> outputArr_reshaped = make_vector(N, H, W, C) ; + AvgPool(N, imgH, imgW, C, ksizeH, ksizeW, strideH, strideW, H, W, inputArr_reshaped, outputArr_reshaped) ; - outputArr[((((fh * FW) * CIG) + (fw * CIG)) + ci)][linIdxFilterMult] = val; - } - } - } - - linIdxFilterMult = (linIdxFilterMult + 1); - leftTopCornerW = (leftTopCornerW + strideW); - } - - leftTopCornerH = (leftTopCornerH + strideH); - } - } + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr) ; } -void Conv2DGroupWrapper( +void __onnxbridge_Conv2DGroupWrapper( int32_t N, int32_t CI, int32_t H, int32_t W, int32_t FH, int32_t FW, int32_t CO, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t G, @@ -658,9421 +94,28 @@ void Conv2DGroupWrapper( int32_t outW = ((((W + (zPadWLeft + zPadWRight)) - FW) / strideW) + 1); int32_t reshapedIPCols = ((N * outH) * outW); - for (uint32_t g = 0; g < G; g++) - { - vector> inputReshaped = make_vector(reshapedIPRows, reshapedIPCols); - vector> filterReshaped = make_vector(reshapedFilterRows, reshapedFilterCols); - vector> matmulOP = make_vector(reshapedFilterRows, reshapedIPCols); + vector>>> inputArr_reshaped = make_vector(N, H, W, CI) ; + NCHW_to_NHWC(N, CI, H, W, inputArr, inputArr_reshaped) ; - Conv2DReshapeFilterGroup(FH, FW, CI, CO, g, G, filterArr, filterReshaped); - Conv2DReshapeInputGroup(N, H, W, CI, FH, FW, zPadHLeft, zPadHRight, zPadWLeft, zPadWRight, strideH, strideW, g, G, reshapedIPRows, reshapedIPCols, inputArr, inputReshaped); - MatMul(reshapedFilterRows, reshapedFilterCols, reshapedIPCols, filterReshaped, inputReshaped, matmulOP); - Conv2DReshapeMatMulOPGroup(N, outH, outW, CO, g, G, matmulOP, outArr); - } + vector>>> filterArr_reshaped = make_vector(FH, FW, CI, CO); + OIFF_to_FFIO(CO, CI, FH, FW, filterArr, filterArr_reshaped); + + vector>>> outputArr_reshaped = make_vector(N, outH, outW, CO) ; + Conv2DGroupWrapper(N, H, W, CI, FH, FW, CO, zPadHLeft, zPadHRight, zPadWLeft, zPadWRight, strideH, strideW, G, inputArr_reshaped, filterArr_reshaped, outputArr_reshaped); + + NHWC_to_NCHW(N, outH, outW, CO, outputArr_reshaped, outArr) ; } -void ConvAdd(int32_t s1, int32_t s2, int32_t s3, int32_t s4, +void __onnxbridge_ConvAdd(int32_t N, int32_t C, int32_t H, int32_t W, vector>>> &inArr, vector &biasArr, vector>>> &outArr) { - int sz; + vector>>> inputArr_reshaped = make_vector(N, H, W, C) ; + NCHW_to_NHWC(N, C, H, W, inArr, inputArr_reshaped) ; - sz = s1 * s2 * s3 * s4; + vector>>> outputArr_reshaped = make_vector(N, H, W, C) ; + ConvAdd(N, H, W, C, inputArr_reshaped, biasArr, outputArr_reshaped) ; - vector arr1 = make_vector_float(ALICE, sz); - vector arr2 = make_vector_float(ALICE, sz); - vector out = make_vector_float(ALICE, sz); - - for (int i1 = 0; i1 < s1; i1++) - { - for (int i2 = 0; i2 < s3; i2++) - { - for (int i3 = 0; i3 < s4; i3++) - { - for (int i4 = 0; i4 < s2; i4++) - { - arr1[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4] = inArr[i1][i4][i2][i3] ; - arr2[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4] = biasArr[i4] ; - } - } - } - } - - ElemWiseAdd(sz, arr1, arr2, out); - - for (int i1 = 0; i1 < s1; i1++) - { - for (int i2 = 0; i2 < s3; i2++) - { - for (int i3 = 0; i3 < s4; i3++) - { - for (int i4 = 0; i4 < s2; i4++) - { - outArr[i1][i4][i2][i3] = out[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4]; - } - } - } - } -} - -void Concat1T44(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - } - } - } -} - -void Concat2T222(int32_t s1, int32_t s2, int32_t inp1s1, int32_t inp1s2, auto &inp1, int32_t inp2s1, int32_t inp2s2, auto &inp2, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2] = inp1[i1][i2]; - } - else - { - outp[i1][i2] = inp2[(i1 - inp1s1)][i2]; - } - } - else - { - if ((i2 < inp1s2)) - { - outp[i1][i2] = inp1[i1][i2]; - } - else - { - outp[i1][i2] = inp2[i1][(i2 - inp1s2)]; - } - } - } - } -} - -void Concat2T444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - } - } - } - } - } - } - } -} - -void Concat3T4444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - } - } - } - } - } - } - } - } -} - -void Concat4T44444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - } - } - } - } - } - } - } - } - } -} - -void Concat5T444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat6T4444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat7T44444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat8T444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat9T4444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat10T44444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat11T444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat12T4444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat13T44444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat14T444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat15T4444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat16T44444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat17T444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat18T4444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat19T44444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat20T444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat21T4444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat22T44444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat23T444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat24T4444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t inp24s1, int32_t inp24s2, int32_t inp24s3, int32_t inp24s4, auto &inp24, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1))) - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[(((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2))) - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][(((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][i2][(((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][i2][i3][(((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat25T44444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t inp24s1, int32_t inp24s2, int32_t inp24s3, int32_t inp24s4, auto &inp24, int32_t inp25s1, int32_t inp25s2, int32_t inp25s3, int32_t inp25s4, auto &inp25, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1))) - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1) + inp24s1))) - { - outp[i1][i2][i3][i4] = inp24[(((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[((((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1) - inp24s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2))) - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2) + inp24s2))) - { - outp[i1][i2][i3][i4] = inp24[i1][(((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][((((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2) - inp24s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3) + inp24s3))) - { - outp[i1][i2][i3][i4] = inp24[i1][i2][(((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][i2][((((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3) - inp24s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4) + inp24s4))) - { - outp[i1][i2][i3][i4] = inp24[i1][i2][i3][(((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][i2][i3][((((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4) - inp24s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr) ; +} \ No newline at end of file diff --git a/OnnxBridge/Secfloat/lib_cleartext/cleartext_inout.cpp b/OnnxBridge/Secfloat/lib_cleartext/cleartext_inout.cpp index b91d1b2b..d79a1caf 100644 --- a/OnnxBridge/Secfloat/lib_cleartext/cleartext_inout.cpp +++ b/OnnxBridge/Secfloat/lib_cleartext/cleartext_inout.cpp @@ -19,9 +19,9 @@ auto make_vector_float(int party, size_t first, Args... sizes) return make_vector(first, sizes...); } -auto input1(int d1, int party) +vector input1(int d1, int party) { - auto tmp0 = make_vector(d1); + vector tmp0 = make_vector(d1); for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -31,9 +31,9 @@ auto input1(int d1, int party) return tmp0; } -auto input2(int d1, int d2, int party) +vector> input2(int d1, int d2, int party) { - auto tmp0 = make_vector(d1, d2); + vector> tmp0 = make_vector(d1, d2); for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -46,9 +46,9 @@ auto input2(int d1, int d2, int party) return tmp0; } -auto input3(int d1, int d2, int d3, int party) +vector>> input3(int d1, int d2, int d3, int party) { - auto tmp0 = make_vector(d1, d2, d3); + vector>> tmp0 = make_vector(d1, d2, d3); for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -64,9 +64,9 @@ auto input3(int d1, int d2, int d3, int party) return tmp0; } -auto input4(int d1, int d2, int d3, int d4, int party) +vector>>> input4(int d1, int d2, int d3, int d4, int party) { - auto tmp0 = make_vector(d1, d2, d3, d4); + vector>>> tmp0 = make_vector(d1, d2, d3, d4); for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -85,7 +85,7 @@ auto input4(int d1, int d2, int d3, int d4, int party) return tmp0; } -void output1(auto name, int d1, int party) +void output1(vector &name, int d1, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -93,7 +93,7 @@ void output1(auto name, int d1, int party) } } -void output2(auto name, int d1, int d2, int party) +void output2(vector> &name, int d1, int d2, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -104,7 +104,7 @@ void output2(auto name, int d1, int d2, int party) } } -void output3(auto name, int d1, int d2, int d3, int party) +void output3(vector>> &name, int d1, int d2, int d3, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -118,7 +118,7 @@ void output3(auto name, int d1, int d2, int d3, int party) } } -void output4(auto name, int d1, int d2, int d3, int d4, int party) +void output4(vector>>> &name, int d1, int d2, int d3, int d4, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { diff --git a/OnnxBridge/Secfloat/lib_cleartext/link_secfloat_cleartext.cpp b/OnnxBridge/Secfloat/lib_cleartext/link_secfloat_cleartext.cpp new file mode 100644 index 00000000..35384d28 --- /dev/null +++ b/OnnxBridge/Secfloat/lib_cleartext/link_secfloat_cleartext.cpp @@ -0,0 +1,438 @@ +#include "cleartext_inout.cpp" +#include "cleartext_common.cpp" + + +void Relu(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr) +{ + int32_t size = (s1 * s2); + + vector reshapedInArr = make_vector(size); + + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + int32_t linIdx = ((i1 * s2) + i2); + + reshapedInArr[linIdx] = inArr[i1][i2]; + } + } + Relu_nomask(size, reshapedInArr, reshapedOutArr); + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + int32_t linIdx = ((i1 * s2) + i2); + + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr, vector>>> &outArr) +{ + int32_t size = (((s1 * s2) * s3) * s4); + + vector reshapedInArr = make_vector(size); + + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + for (uint32_t i3 = 0; i3 < s3; i3++) + { + for (uint32_t i4 = 0; i4 < s4; i4++) + { + int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); + reshapedInArr[linIdx] = inArr[i1][i2][i3][i4]; + } + } + } + } + + Relu_nomask(size, reshapedInArr, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + for (uint32_t i3 = 0; i3 < s3; i3++) + { + for (uint32_t i4 = 0; i4 < s4; i4++) + { + int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); + + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void Tanh(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr) +{ + int32_t size = (s1 * s2); + + vector reshapedInArr = make_vector(size); + + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + int32_t linIdx = ((i1 * s2) + i2); + + reshapedInArr[linIdx] = inArr[i1][i2]; + } + } + Tanh(size, reshapedInArr, reshapedOutArr); + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + int32_t linIdx = ((i1 * s2) + i2); + + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void Tanh(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr, vector>>> &outArr) +{ + int32_t size = (((s1 * s2) * s3) * s4); + + vector reshapedInArr = make_vector(size); + + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + for (uint32_t i3 = 0; i3 < s3; i3++) + { + for (uint32_t i4 = 0; i4 < s4; i4++) + { + int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); + + reshapedInArr[linIdx] = inArr[i1][i2][i3][i4]; + } + } + } + } + + Tanh(size, reshapedInArr, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) + { + for (uint32_t i2 = 0; i2 < s2; i2++) + { + for (uint32_t i3 = 0; i3 < s3; i3++) + { + for (uint32_t i4 = 0; i4 < s4; i4++) + { + int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); + + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + + +void ElemWiseAdd2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector(size); + vector reshapedInArr2 = make_vector(size); + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseAdd(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseSub2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector(size); + vector reshapedInArr2 = make_vector(size); + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseSub(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseMul2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector(size); + vector reshapedInArr2 = make_vector(size); + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseMul(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseDiv2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector(size); + vector reshapedInArr2 = make_vector(size); + vector reshapedOutArr = make_vector(size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseDiv(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseAdd4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector(sz); + vector reshapedInArr2 = make_vector(sz); + vector reshapedOutArr = make_vector(sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseAdd(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseSub4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector(sz); + vector reshapedInArr2 = make_vector(sz); + vector reshapedOutArr = make_vector(sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseSub(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseMul4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector(sz); + vector reshapedInArr2 = make_vector(sz); + vector reshapedOutArr = make_vector(sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseMul(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseDiv4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector(sz); + vector reshapedInArr2 = make_vector(sz); + vector reshapedOutArr = make_vector(sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseDiv(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void Gemm(int32_t m, int32_t n, int32_t o, int32_t p, float alpha, float beta, int32_t transA, int32_t transB, int32_t x, int32_t k, vector> &A, vector> &B, vector &C, vector> &output) +{ + if (transA) + { + vector> tmpA = make_vector(n, m); + for (uint32_t i = 0; i < m; i++) + { + for (uint32_t j = 0; j < n; j++) + { + tmpA[j][i] = A[i][j]; + } + } + A = tmpA; + swap(m, n); + } + if (transB) + { + vector> tmpB = make_vector(p, o); + for (uint32_t i = 0; i < o; i++) + { + for (uint32_t j = 0; j < p; j++) + { + tmpB[j][i] = B[i][j]; + } + } + B = tmpB; + swap(o, p); + } + + vector> tmp = make_vector(x, k); + MatMul(m, n, p, A, B, tmp); + + GemmAdd(x, k, tmp, C, output); +} + +void BatchNormalization(int32_t N, int32_t C, int32_t H, int32_t W, vector>>> &inArr, vector &multArr, vector &biasArr, vector>>> &outArr) +{ + vector>>> mult_expanded = make_vector_float(ALICE, N, C, H, W); + vector>>> bias_expanded = make_vector_float(ALICE, N, C, H, W); + + for (int32_t i = 0; i < N; i++) + { + for (int32_t j = 0; j < C; j++) + { + for (int32_t k = 0; k < H; k++) + { + for (int32_t l = 0; l < W; l++) + { + mult_expanded[i][j][k][l] = multArr[j]; + bias_expanded[i][j][k][l] = biasArr[j]; + } + } + } + } + + ElemWiseMul4(N, C, H, W, inArr, mult_expanded, outArr); + ElemWiseAdd4(N, C, H, W, outArr, bias_expanded, outArr); +} \ No newline at end of file diff --git a/OnnxBridge/Secfloat/lib_secfloat/common.cpp b/OnnxBridge/Secfloat/lib_secfloat/common.cpp index ffd0c9d3..3526e770 100644 --- a/OnnxBridge/Secfloat/lib_secfloat/common.cpp +++ b/OnnxBridge/Secfloat/lib_secfloat/common.cpp @@ -1,214 +1,51 @@ #include -#include "link_secfloat.cpp" -void MatMul2D(int32_t i, int32_t j, int32_t k, auto &A, auto &B, auto &C, bool isA = true) +void NCHW_to_NHWC(int32_t N, int32_t C, int32_t H, int32_t W, vector>>> &inArr, vector>>> &outArr) { - for (uint32_t i1 = 0; i1 < i; i1++) - { - for (uint32_t i2 = 0; i2 < k; i2++) - { - C[i1][i2] = __public_float_to_baba(0., ALICE); - - for (uint32_t i3 = 0; i3 < j; i3++) - { - C[i1][i2] = Add(C[i1][i2], Mul(A[i1][i3], B[i3][i2])); - } - } - } -} - -void Gemm(int32_t m, int32_t n, int32_t o, int32_t p, float alpha, float beta, int32_t transA, int32_t transB, int32_t x, int32_t k, auto &A, auto &B, auto &C, auto &output) -{ - if (transA) - { - auto tmpA = make_vector_float(ALICE, n, m); - for (uint32_t i = 0; i < m; i++) - { - for (uint32_t j = 0; j < n; j++) - { - tmpA[j][i] = A[i][j]; - } - } - A = tmpA; - swap(m, n); - } - if (transB) - { - auto tmpB = make_vector_float(ALICE, p, o); - for (uint32_t i = 0; i < o; i++) - { - for (uint32_t j = 0; j < p; j++) - { - tmpB[j][i] = B[i][j]; - } - } - B = tmpB; - swap(o, p); - } - - auto tmp = make_vector_float(ALICE, x, k); - MatMul(m, n, p, A, B, tmp); - - - GemmAdd(x,k,tmp,C,output); - - // for (uint32_t i0 = 0; i0 < x; i0++) - // { - // for (uint32_t i1 = 0; i1 < k; i1++) - // { - // output[i0][i1] = Add(tmp[i0][i1], C[i1]); - // } - // } -} - -void Flatten(int32_t x, int32_t y, auto &A, auto &output) -{ - (&output) = *reinterpret_cast(A); -} - -void FusedBatchNorm4411(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &multArr, auto &biasArr, auto &outputArr) -{ - int32_t inpSize = (((s1 * s2) * s3) * s4); - - auto inArrReshaped = make_vector_float(ALICE, inpSize); - - auto multArrReshaped = make_vector_float(ALICE, inpSize); - - auto multExprAns = make_vector_float(ALICE, inpSize); - - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s4; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s2; i4++) - { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - inArrReshaped[linIdx] = inArr[i1][i4][i2][i3]; - - multArrReshaped[linIdx] = multArr[i4]; - } - } - } - } - ElemWiseActModelVectorMult(inpSize, inArrReshaped, multArrReshaped, multExprAns); - for (uint32_t i1 = 0; i1 < s1; i1++) + for (uint32_t n = 0; n < N; n++) { - for (uint32_t i2 = 0; i2 < s4; i2++) + for (uint32_t c = 0; c < C; c++) { - for (uint32_t i3 = 0; i3 < s3; i3++) + for (uint32_t h = 0; h < H; h++) { - for (uint32_t i4 = 0; i4 < s2; i4++) + for (uint32_t w = 0; w < W; w++) { - int32_t linIdx = ((((((i1 * s2) * s3) * s4) + ((i2 * s3) * s4)) + (i3 * s4)) + i4); - - outputArr[i1][i4][i2][i3] = Add(multExprAns[linIdx], biasArr[i4]); + outArr[n][h][w][c] = inArr[n][c][h][w]; } } } } - delete &inArrReshaped; - delete &multArrReshaped; - delete &multExprAns; - delete &biasArr; } -void BatchNormalization(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &multArr, auto &biasArr, auto &outputArr) +void NHWC_to_NCHW(int32_t N, int32_t H, int32_t W, int32_t C, vector>>> &inArr, vector>>> &outArr) { - FusedBatchNorm4411(s1, s2, s3, s4, inArr, multArr, biasArr, outputArr); -} - -void __onnxbridge_Conv2DReshapeMatMulOPGroup(int32_t N, int32_t finalH, int32_t finalW, int32_t CO, int32_t g, int32_t G, vector> &inputArr, vector>>> &outputArr) -{ - int32_t COG = (CO / G); - int32_t startCO = (g * COG); - for (uint32_t co = 0; co < COG; co++) + for (uint32_t n = 0; n < N; n++) { - for (uint32_t n = 0; n < N; n++) + for (uint32_t c = 0; c < C; c++) { - for (uint32_t h = 0; h < finalH; h++) + for (uint32_t h = 0; h < H; h++) { - for (uint32_t w = 0; w < finalW; w++) + for (uint32_t w = 0; w < W; w++) { - outputArr[n][(co + startCO)][h][w] = inputArr[co][((((n * finalH) * finalW) + (h * finalW)) + w)]; + outArr[n][c][h][w] = inArr[n][h][w][c]; } } } } } -void __onnxbridge_Conv2DReshapeFilterGroup(int32_t FH, int32_t FW, int32_t CI, int32_t CO, int32_t g, int32_t G, vector>>> &inputArr, vector> &outputArr) -{ - int32_t CIG = (CI / G); - int32_t COG = (CO / G); - int32_t startCO = (g * COG); - - for (uint32_t co = 0; co < COG; co++) - { - for (uint32_t fh = 0; fh < FH; fh++) - { - for (uint32_t fw = 0; fw < FW; fw++) - { - for (uint32_t ci = 0; ci < CIG; ci++) - { - int32_t linIdx = ((((fh * FW) * CIG) + (fw * CIG)) + ci); - outputArr[co][linIdx] = inputArr[(co + startCO)][ci][fh][fw]; - } - } - } - } -} +// NCHW_to_NHWC(N, CI, H, W, inputArr, inputArr_reshaped) ; +// OIFF_to_FFIO(CO, CI, FJ, FW, filterArr, filterArr_reshaped) ; -void __onnxbridge_Conv2DReshapeInputGroup(int32_t N, int32_t H, int32_t W, int32_t CI, int32_t FH, int32_t FW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t g, int32_t G, int32_t RRows, int32_t RCols, vector>>> &inputArr, vector> &outputArr) +void OIFF_to_FFIO(int32_t CO, int32_t CI, int32_t FH, int32_t FW, vector>>> &inArr, vector>>> &outArr) { - int32_t linIdxFilterMult = 0; - int32_t CIG = (CI / G); - - for (uint32_t n = 0; n < N; n++) - { - int32_t leftTopCornerH = (0 - zPadHLeft); - int32_t extremeRightBottomCornerH = ((H - 1) + zPadHRight); - - while ((((leftTopCornerH + FH) - 1) <= extremeRightBottomCornerH)) - { - int32_t leftTopCornerW = (0 - zPadWLeft); - int32_t extremeRightBottomCornerW = ((W - 1) + zPadWRight); - - while ((((leftTopCornerW + FW) - 1) <= extremeRightBottomCornerW)) - { - for (uint32_t fh = 0; fh < FH; fh++) - { - for (uint32_t fw = 0; fw < FW; fw++) - { - - int32_t curPosH = (leftTopCornerH + fh); - int32_t curPosW = (leftTopCornerW + fw); - FPArray val = __public_float_to_arithmetic(0., ALICE); - int32_t startCI = (g * CIG); - - for (uint32_t ci = 0; ci < CIG; ci++) - { - if ((((curPosH < 0) || (curPosH >= H)) || ((curPosW < 0) || (curPosW >= W)))) - { - val = __public_float_to_arithmetic(0., ALICE); - } - else - { - val = inputArr[n][(ci + startCI)][curPosH][curPosW]; - } - - outputArr[((((fh * FW) * CIG) + (fw * CIG)) + ci)][linIdxFilterMult] = val; - } - } + for (uint32_t o = 0 ; o < CO ; o++) { + for (uint32_t i = 0 ; i < CI ; i++) { + for (uint32_t fh = 0 ; fh < FH ; fh++) { + for (uint32_t fw = 0 ; fw < FW ; fw++) { + outArr[fh][fw][i][o] = inArr[o][i][fh][fw] ; } - - linIdxFilterMult = (linIdxFilterMult + 1); - leftTopCornerW = (leftTopCornerW + strideW); } - - leftTopCornerH = (leftTopCornerH + strideH); } } } @@ -230,9424 +67,53 @@ void __onnxbridge_Conv2DGroupWrapper( int32_t outW = ((((W + (zPadWLeft + zPadWRight)) - FW) / strideW) + 1); int32_t reshapedIPCols = ((N * outH) * outW); - for (uint32_t g = 0; g < G; g++) - { - vector> inputReshaped = make_vector_float(ALICE, reshapedIPRows, reshapedIPCols); - vector> filterReshaped = make_vector_float(ALICE, reshapedFilterRows, reshapedFilterCols); - vector> matmulOP = make_vector_float(ALICE, reshapedFilterRows, reshapedIPCols); + vector>>> inputArr_reshaped = make_vector_float(ALICE, N, H, W, CI) ; + NCHW_to_NHWC(N, CI, H, W, inputArr, inputArr_reshaped) ; + // cout << "\tAttempted NCHW_to_NHWC" << endl ; - __onnxbridge_Conv2DReshapeFilterGroup(FH, FW, CI, CO, g, G, filterArr, filterReshaped); - __onnxbridge_Conv2DReshapeInputGroup(N, H, W, CI, FH, FW, zPadHLeft, zPadHRight, zPadWLeft, zPadWRight, strideH, strideW, g, G, reshapedIPRows, reshapedIPCols, inputArr, inputReshaped); - MatMul(reshapedFilterRows, reshapedFilterCols, reshapedIPCols, filterReshaped, inputReshaped, matmulOP); - __onnxbridge_Conv2DReshapeMatMulOPGroup(N, outH, outW, CO, g, G, matmulOP, outArr); - } + vector>>> filterArr_reshaped = make_vector_float(ALICE, FH, FW, CI, CO) ; + OIFF_to_FFIO(CO, CI, FH, FW, filterArr, filterArr_reshaped) ; + + vector>>> outputArr_reshaped = make_vector_float(ALICE, N, outH, outW, CO) ; + Conv2DGroupWrapper(N, H, W, CI, FH, FW, CO, zPadHLeft, zPadHRight, zPadWLeft, zPadWRight, strideH, strideW, G, inputArr_reshaped, filterArr_reshaped, outputArr_reshaped) ; + // cout << "\tAttempted Conv2DGroupoWrapper" << endl ; + + NHWC_to_NCHW(N, outH, outW, CO, outputArr_reshaped, outArr) ; + // cout << "\tAttempted NHCW_to_NCHW" << endl ; } -void __onnxbridge_ConvAdd(int32_t s1, int32_t s2, int32_t s3, int32_t s4, +void __onnxbridge_ConvAdd(int32_t N, int32_t C, int32_t H, int32_t W, vector>>> &inArr, vector &biasArr, vector>>> &outArr) { - int m_bits, e_bits; - int sz; - - m_bits = inArr[0][0][0][0].m_bits; - e_bits = inArr[0][0][0][0].e_bits; - sz = s1 * s2 * s3 * s4; - - vector arr1 = make_vector_float(ALICE, sz); - vector arr2 = make_vector_float(ALICE, sz); - vector out = make_vector_float(ALICE, sz); - - for (int i1 = 0; i1 < s1; i1++) - { - for (int i2 = 0; i2 < s3; i2++) - { - for (int i3 = 0; i3 < s4; i3++) - { - for (int i4 = 0; i4 < s2; i4++) - { - arr1[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4] = inArr[i1][i4][i2][i3] ; - arr2[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4] = biasArr[i4] ; - } - } - } - } - - ElemWiseAdd(sz, arr1, arr2, out); - - for (int i1 = 0; i1 < s1; i1++) - { - for (int i2 = 0; i2 < s3; i2++) - { - for (int i3 = 0; i3 < s4; i3++) - { - for (int i4 = 0; i4 < s2; i4++) - { - outArr[i1][i4][i2][i3] = out[i1*s3*s4*s2 + i2*s4*s2 + i3*s2 + i4]; - } - } - } - } -} - -void Concat1T44(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - } - } - } -} - -void Concat2T222(int32_t s1, int32_t s2, int32_t inp1s1, int32_t inp1s2, auto &inp1, int32_t inp2s1, int32_t inp2s2, auto &inp2, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2] = inp1[i1][i2]; - } - else - { - outp[i1][i2] = inp2[(i1 - inp1s1)][i2]; - } - } - else - { - if ((i2 < inp1s2)) - { - outp[i1][i2] = inp1[i1][i2]; - } - else - { - outp[i1][i2] = inp2[i1][(i2 - inp1s2)]; - } - } - } - } -} - -void Concat2T444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - } - } - } - } - } - } - } -} - -void Concat3T4444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - } - } - } - } - } - } - } - } -} - -void Concat4T44444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - } - } - } - } - } - } - } - } - } -} - -void Concat5T444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat6T4444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat7T44444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat8T444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> inputArr_reshaped = make_vector_float(ALICE, N, H, W, C) ; + NCHW_to_NHWC(N, C, H, W, inArr, inputArr_reshaped) ; -void Concat9T4444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> outputArr_reshaped = make_vector_float(ALICE, N, H, W, C) ; + ConvAdd(N, H, W, C, inputArr_reshaped, biasArr, outputArr_reshaped) ; -void Concat10T44444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr) ; } -void Concat11T444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t axis, auto &outp) +void __onnxbridge_MaxPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t strideH, int32_t strideW, int32_t imgH, int32_t imgW, vector>>> &inArr, vector>>> &outArr, int32_t padHLeft, int32_t padHRight, int32_t padWLeft, int32_t padWRight) { - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> inputArr_reshaped = make_vector_float(ALICE, N, imgH, imgW, C) ; + NCHW_to_NHWC(N, C, imgH, imgW, inArr, inputArr_reshaped) ; -void Concat12T4444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat13T44444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> outputArr_reshaped = make_vector_float(ALICE, N, H, W, C) ; + MaxPool_nomask(N, imgH, imgW, C, ksizeH, ksizeW, strideH, strideW, H, W, inputArr_reshaped, outputArr_reshaped, padHLeft, padHRight, padWLeft, padWRight); -void Concat14T444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr) ; } -void Concat15T4444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t axis, auto &outp) +void __onnxbridge_AvgPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t strideH, int32_t strideW, int32_t imgH, int32_t imgW, vector>>> &inArr, vector>>> &outArr) { - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> inputArr_reshaped = make_vector_float(ALICE, N, imgH, imgW, C) ; + NCHW_to_NHWC(N, C, imgH, imgW, inArr, inputArr_reshaped) ; -void Concat16T44444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + vector>>> outputArr_reshaped = make_vector_float(ALICE, N, H, W, C) ; + Avgpool(N, imgH, imgW, C, ksizeH, ksizeW, strideH, strideW, H, W, inputArr_reshaped, outputArr_reshaped) ; -void Concat17T444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat18T4444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat19T44444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat20T444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat21T4444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat22T44444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat23T444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat24T4444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t inp24s1, int32_t inp24s2, int32_t inp24s3, int32_t inp24s4, auto &inp24, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1))) - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[(((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2))) - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][(((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][i2][(((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp24[i1][i2][i3][(((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -void Concat25T44444444444444444444444444(int32_t s1, int32_t s2, int32_t s3, int32_t s4, int32_t inp1s1, int32_t inp1s2, int32_t inp1s3, int32_t inp1s4, auto &inp1, int32_t inp2s1, int32_t inp2s2, int32_t inp2s3, int32_t inp2s4, auto &inp2, int32_t inp3s1, int32_t inp3s2, int32_t inp3s3, int32_t inp3s4, auto &inp3, int32_t inp4s1, int32_t inp4s2, int32_t inp4s3, int32_t inp4s4, auto &inp4, int32_t inp5s1, int32_t inp5s2, int32_t inp5s3, int32_t inp5s4, auto &inp5, int32_t inp6s1, int32_t inp6s2, int32_t inp6s3, int32_t inp6s4, auto &inp6, int32_t inp7s1, int32_t inp7s2, int32_t inp7s3, int32_t inp7s4, auto &inp7, int32_t inp8s1, int32_t inp8s2, int32_t inp8s3, int32_t inp8s4, auto &inp8, int32_t inp9s1, int32_t inp9s2, int32_t inp9s3, int32_t inp9s4, auto &inp9, int32_t inp10s1, int32_t inp10s2, int32_t inp10s3, int32_t inp10s4, auto &inp10, int32_t inp11s1, int32_t inp11s2, int32_t inp11s3, int32_t inp11s4, auto &inp11, int32_t inp12s1, int32_t inp12s2, int32_t inp12s3, int32_t inp12s4, auto &inp12, int32_t inp13s1, int32_t inp13s2, int32_t inp13s3, int32_t inp13s4, auto &inp13, int32_t inp14s1, int32_t inp14s2, int32_t inp14s3, int32_t inp14s4, auto &inp14, int32_t inp15s1, int32_t inp15s2, int32_t inp15s3, int32_t inp15s4, auto &inp15, int32_t inp16s1, int32_t inp16s2, int32_t inp16s3, int32_t inp16s4, auto &inp16, int32_t inp17s1, int32_t inp17s2, int32_t inp17s3, int32_t inp17s4, auto &inp17, int32_t inp18s1, int32_t inp18s2, int32_t inp18s3, int32_t inp18s4, auto &inp18, int32_t inp19s1, int32_t inp19s2, int32_t inp19s3, int32_t inp19s4, auto &inp19, int32_t inp20s1, int32_t inp20s2, int32_t inp20s3, int32_t inp20s4, auto &inp20, int32_t inp21s1, int32_t inp21s2, int32_t inp21s3, int32_t inp21s4, auto &inp21, int32_t inp22s1, int32_t inp22s2, int32_t inp22s3, int32_t inp22s4, auto &inp22, int32_t inp23s1, int32_t inp23s2, int32_t inp23s3, int32_t inp23s4, auto &inp23, int32_t inp24s1, int32_t inp24s2, int32_t inp24s3, int32_t inp24s4, auto &inp24, int32_t inp25s1, int32_t inp25s2, int32_t inp25s3, int32_t inp25s4, auto &inp25, int32_t axis, auto &outp) -{ - for (uint32_t i1 = 0; i1 < s1; i1++) - { - for (uint32_t i2 = 0; i2 < s2; i2++) - { - for (uint32_t i3 = 0; i3 < s3; i3++) - { - for (uint32_t i4 = 0; i4 < s4; i4++) - { - if ((axis == 0)) - { - if ((i1 < inp1s1)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i1 < (inp1s1 + inp2s1))) - { - outp[i1][i2][i3][i4] = inp2[(i1 - inp1s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((inp1s1 + inp2s1) + inp3s1))) - { - outp[i1][i2][i3][i4] = inp3[((i1 - inp1s1) - inp2s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((inp1s1 + inp2s1) + inp3s1) + inp4s1))) - { - outp[i1][i2][i3][i4] = inp4[(((i1 - inp1s1) - inp2s1) - inp3s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1))) - { - outp[i1][i2][i3][i4] = inp5[((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1))) - { - outp[i1][i2][i3][i4] = inp6[(((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1))) - { - outp[i1][i2][i3][i4] = inp7[((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1))) - { - outp[i1][i2][i3][i4] = inp8[(((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1))) - { - outp[i1][i2][i3][i4] = inp9[((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1))) - { - outp[i1][i2][i3][i4] = inp10[(((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1))) - { - outp[i1][i2][i3][i4] = inp11[((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1))) - { - outp[i1][i2][i3][i4] = inp12[(((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1))) - { - outp[i1][i2][i3][i4] = inp13[((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1))) - { - outp[i1][i2][i3][i4] = inp14[(((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1))) - { - outp[i1][i2][i3][i4] = inp15[((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1))) - { - outp[i1][i2][i3][i4] = inp16[(((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1))) - { - outp[i1][i2][i3][i4] = inp17[((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1))) - { - outp[i1][i2][i3][i4] = inp18[(((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1))) - { - outp[i1][i2][i3][i4] = inp19[((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1))) - { - outp[i1][i2][i3][i4] = inp20[(((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1))) - { - outp[i1][i2][i3][i4] = inp21[((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1))) - { - outp[i1][i2][i3][i4] = inp22[(((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1)][i2][i3][i4]; - } - else - { - if ((i1 < ((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1))) - { - outp[i1][i2][i3][i4] = inp23[((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1)][i2][i3][i4]; - } - else - { - if ((i1 < (((((((((((((((((((((((inp1s1 + inp2s1) + inp3s1) + inp4s1) + inp5s1) + inp6s1) + inp7s1) + inp8s1) + inp9s1) + inp10s1) + inp11s1) + inp12s1) + inp13s1) + inp14s1) + inp15s1) + inp16s1) + inp17s1) + inp18s1) + inp19s1) + inp20s1) + inp21s1) + inp22s1) + inp23s1) + inp24s1))) - { - outp[i1][i2][i3][i4] = inp24[(((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1)][i2][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[((((((((((((((((((((((((i1 - inp1s1) - inp2s1) - inp3s1) - inp4s1) - inp5s1) - inp6s1) - inp7s1) - inp8s1) - inp9s1) - inp10s1) - inp11s1) - inp12s1) - inp13s1) - inp14s1) - inp15s1) - inp16s1) - inp17s1) - inp18s1) - inp19s1) - inp20s1) - inp21s1) - inp22s1) - inp23s1) - inp24s1)][i2][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 1)) - { - if ((i2 < inp1s2)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i2 < (inp1s2 + inp2s2))) - { - outp[i1][i2][i3][i4] = inp2[i1][(i2 - inp1s2)][i3][i4]; - } - else - { - if ((i2 < ((inp1s2 + inp2s2) + inp3s2))) - { - outp[i1][i2][i3][i4] = inp3[i1][((i2 - inp1s2) - inp2s2)][i3][i4]; - } - else - { - if ((i2 < (((inp1s2 + inp2s2) + inp3s2) + inp4s2))) - { - outp[i1][i2][i3][i4] = inp4[i1][(((i2 - inp1s2) - inp2s2) - inp3s2)][i3][i4]; - } - else - { - if ((i2 < ((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2))) - { - outp[i1][i2][i3][i4] = inp5[i1][((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2)][i3][i4]; - } - else - { - if ((i2 < (((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2))) - { - outp[i1][i2][i3][i4] = inp6[i1][(((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2)][i3][i4]; - } - else - { - if ((i2 < ((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2))) - { - outp[i1][i2][i3][i4] = inp7[i1][((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2)][i3][i4]; - } - else - { - if ((i2 < (((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2))) - { - outp[i1][i2][i3][i4] = inp8[i1][(((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2))) - { - outp[i1][i2][i3][i4] = inp9[i1][((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2))) - { - outp[i1][i2][i3][i4] = inp10[i1][(((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2))) - { - outp[i1][i2][i3][i4] = inp11[i1][((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2))) - { - outp[i1][i2][i3][i4] = inp12[i1][(((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2))) - { - outp[i1][i2][i3][i4] = inp13[i1][((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2))) - { - outp[i1][i2][i3][i4] = inp14[i1][(((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2))) - { - outp[i1][i2][i3][i4] = inp15[i1][((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2))) - { - outp[i1][i2][i3][i4] = inp16[i1][(((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2))) - { - outp[i1][i2][i3][i4] = inp17[i1][((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2))) - { - outp[i1][i2][i3][i4] = inp18[i1][(((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2))) - { - outp[i1][i2][i3][i4] = inp19[i1][((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2))) - { - outp[i1][i2][i3][i4] = inp20[i1][(((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2))) - { - outp[i1][i2][i3][i4] = inp21[i1][((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2))) - { - outp[i1][i2][i3][i4] = inp22[i1][(((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2)][i3][i4]; - } - else - { - if ((i2 < ((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2))) - { - outp[i1][i2][i3][i4] = inp23[i1][((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2)][i3][i4]; - } - else - { - if ((i2 < (((((((((((((((((((((((inp1s2 + inp2s2) + inp3s2) + inp4s2) + inp5s2) + inp6s2) + inp7s2) + inp8s2) + inp9s2) + inp10s2) + inp11s2) + inp12s2) + inp13s2) + inp14s2) + inp15s2) + inp16s2) + inp17s2) + inp18s2) + inp19s2) + inp20s2) + inp21s2) + inp22s2) + inp23s2) + inp24s2))) - { - outp[i1][i2][i3][i4] = inp24[i1][(((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2)][i3][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][((((((((((((((((((((((((i2 - inp1s2) - inp2s2) - inp3s2) - inp4s2) - inp5s2) - inp6s2) - inp7s2) - inp8s2) - inp9s2) - inp10s2) - inp11s2) - inp12s2) - inp13s2) - inp14s2) - inp15s2) - inp16s2) - inp17s2) - inp18s2) - inp19s2) - inp20s2) - inp21s2) - inp22s2) - inp23s2) - inp24s2)][i3][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((axis == 2)) - { - if ((i3 < inp1s3)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i3 < (inp1s3 + inp2s3))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][(i3 - inp1s3)][i4]; - } - else - { - if ((i3 < ((inp1s3 + inp2s3) + inp3s3))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][((i3 - inp1s3) - inp2s3)][i4]; - } - else - { - if ((i3 < (((inp1s3 + inp2s3) + inp3s3) + inp4s3))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][(((i3 - inp1s3) - inp2s3) - inp3s3)][i4]; - } - else - { - if ((i3 < ((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3)][i4]; - } - else - { - if ((i3 < (((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][(((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3)][i4]; - } - else - { - if ((i3 < ((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3)][i4]; - } - else - { - if ((i3 < (((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][(((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3)][i4]; - } - else - { - if ((i3 < ((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3)][i4]; - } - else - { - if ((i3 < (((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][(((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3)][i4]; - } - else - { - if ((i3 < ((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3)][i4]; - } - else - { - if ((i3 < (((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][(((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3)][i4]; - } - else - { - if ((i3 < ((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3)][i4]; - } - else - { - if ((i3 < (((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][(((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][(((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][(((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][(((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][(((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3)][i4]; - } - else - { - if ((i3 < ((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3)][i4]; - } - else - { - if ((i3 < (((((((((((((((((((((((inp1s3 + inp2s3) + inp3s3) + inp4s3) + inp5s3) + inp6s3) + inp7s3) + inp8s3) + inp9s3) + inp10s3) + inp11s3) + inp12s3) + inp13s3) + inp14s3) + inp15s3) + inp16s3) + inp17s3) + inp18s3) + inp19s3) + inp20s3) + inp21s3) + inp22s3) + inp23s3) + inp24s3))) - { - outp[i1][i2][i3][i4] = inp24[i1][i2][(((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3)][i4]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][i2][((((((((((((((((((((((((i3 - inp1s3) - inp2s3) - inp3s3) - inp4s3) - inp5s3) - inp6s3) - inp7s3) - inp8s3) - inp9s3) - inp10s3) - inp11s3) - inp12s3) - inp13s3) - inp14s3) - inp15s3) - inp16s3) - inp17s3) - inp18s3) - inp19s3) - inp20s3) - inp21s3) - inp22s3) - inp23s3) - inp24s3)][i4]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - else - { - if ((i4 < inp1s4)) - { - outp[i1][i2][i3][i4] = inp1[i1][i2][i3][i4]; - } - else - { - if ((i4 < (inp1s4 + inp2s4))) - { - outp[i1][i2][i3][i4] = inp2[i1][i2][i3][(i4 - inp1s4)]; - } - else - { - if ((i4 < ((inp1s4 + inp2s4) + inp3s4))) - { - outp[i1][i2][i3][i4] = inp3[i1][i2][i3][((i4 - inp1s4) - inp2s4)]; - } - else - { - if ((i4 < (((inp1s4 + inp2s4) + inp3s4) + inp4s4))) - { - outp[i1][i2][i3][i4] = inp4[i1][i2][i3][(((i4 - inp1s4) - inp2s4) - inp3s4)]; - } - else - { - if ((i4 < ((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4))) - { - outp[i1][i2][i3][i4] = inp5[i1][i2][i3][((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4)]; - } - else - { - if ((i4 < (((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4))) - { - outp[i1][i2][i3][i4] = inp6[i1][i2][i3][(((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4)]; - } - else - { - if ((i4 < ((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4))) - { - outp[i1][i2][i3][i4] = inp7[i1][i2][i3][((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4)]; - } - else - { - if ((i4 < (((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4))) - { - outp[i1][i2][i3][i4] = inp8[i1][i2][i3][(((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4)]; - } - else - { - if ((i4 < ((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4))) - { - outp[i1][i2][i3][i4] = inp9[i1][i2][i3][((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4)]; - } - else - { - if ((i4 < (((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4))) - { - outp[i1][i2][i3][i4] = inp10[i1][i2][i3][(((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4)]; - } - else - { - if ((i4 < ((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4))) - { - outp[i1][i2][i3][i4] = inp11[i1][i2][i3][((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4)]; - } - else - { - if ((i4 < (((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4))) - { - outp[i1][i2][i3][i4] = inp12[i1][i2][i3][(((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4)]; - } - else - { - if ((i4 < ((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4))) - { - outp[i1][i2][i3][i4] = inp13[i1][i2][i3][((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4)]; - } - else - { - if ((i4 < (((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4))) - { - outp[i1][i2][i3][i4] = inp14[i1][i2][i3][(((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4)]; - } - else - { - if ((i4 < ((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4))) - { - outp[i1][i2][i3][i4] = inp15[i1][i2][i3][((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4)]; - } - else - { - if ((i4 < (((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4))) - { - outp[i1][i2][i3][i4] = inp16[i1][i2][i3][(((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4)]; - } - else - { - if ((i4 < ((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4))) - { - outp[i1][i2][i3][i4] = inp17[i1][i2][i3][((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4)]; - } - else - { - if ((i4 < (((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4))) - { - outp[i1][i2][i3][i4] = inp18[i1][i2][i3][(((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4)]; - } - else - { - if ((i4 < ((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4))) - { - outp[i1][i2][i3][i4] = inp19[i1][i2][i3][((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4)]; - } - else - { - if ((i4 < (((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4))) - { - outp[i1][i2][i3][i4] = inp20[i1][i2][i3][(((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4))) - { - outp[i1][i2][i3][i4] = inp21[i1][i2][i3][((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4))) - { - outp[i1][i2][i3][i4] = inp22[i1][i2][i3][(((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4)]; - } - else - { - if ((i4 < ((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4))) - { - outp[i1][i2][i3][i4] = inp23[i1][i2][i3][((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4)]; - } - else - { - if ((i4 < (((((((((((((((((((((((inp1s4 + inp2s4) + inp3s4) + inp4s4) + inp5s4) + inp6s4) + inp7s4) + inp8s4) + inp9s4) + inp10s4) + inp11s4) + inp12s4) + inp13s4) + inp14s4) + inp15s4) + inp16s4) + inp17s4) + inp18s4) + inp19s4) + inp20s4) + inp21s4) + inp22s4) + inp23s4) + inp24s4))) - { - outp[i1][i2][i3][i4] = inp24[i1][i2][i3][(((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4)]; - } - else - { - outp[i1][i2][i3][i4] = inp25[i1][i2][i3][((((((((((((((((((((((((i4 - inp1s4) - inp2s4) - inp3s4) - inp4s4) - inp5s4) - inp6s4) - inp7s4) - inp8s4) - inp9s4) - inp10s4) - inp11s4) - inp12s4) - inp13s4) - inp14s4) - inp15s4) - inp16s4) - inp17s4) - inp18s4) - inp19s4) - inp20s4) - inp21s4) - inp22s4) - inp23s4) - inp24s4)]; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} + NHWC_to_NCHW(N, H, W, C, outputArr_reshaped, outArr) ; +} \ No newline at end of file diff --git a/OnnxBridge/Secfloat/lib_secfloat/inout.cpp b/OnnxBridge/Secfloat/lib_secfloat/inout.cpp index f2363808..fb50ce35 100644 --- a/OnnxBridge/Secfloat/lib_secfloat/inout.cpp +++ b/OnnxBridge/Secfloat/lib_secfloat/inout.cpp @@ -5,9 +5,9 @@ #include #include "library_float.h" -auto input1(int d1, int party) +vector input1(int d1, int party) { - auto tmp0 = make_vector_float(party, d1); + vector tmp0 = make_vector_float(party, d1); float *__tmp_in_tmp0 = new float[1]; @@ -24,9 +24,9 @@ auto input1(int d1, int party) return tmp0; } -auto input2(int d1, int d2, int party) +vector> input2(int d1, int d2, int party) { - auto tmp0 = make_vector_float(party, d1, d2); + vector> tmp0 = make_vector_float(party, d1, d2); float *__tmp_in_tmp0 = new float[1]; @@ -46,9 +46,9 @@ auto input2(int d1, int d2, int party) return tmp0; } -auto input3(int d1, int d2, int d3, int party) +vector>> input3(int d1, int d2, int d3, int party) { - auto tmp0 = make_vector_float(party, d1, d2, d3); + vector>> tmp0 = make_vector_float(party, d1, d2, d3); float *__tmp_in_tmp0 = new float[1]; @@ -71,9 +71,9 @@ auto input3(int d1, int d2, int d3, int party) return tmp0; } -auto input4(int d1, int d2, int d3, int d4, int party) +vector>>> input4(int d1, int d2, int d3, int d4, int party) { - auto tmp0 = make_vector_float(party, d1, d2, d3, d4); + vector>>> tmp0 = make_vector_float(party, d1, d2, d3, d4); float *__tmp_in_tmp0 = new float[1]; @@ -98,7 +98,7 @@ auto input4(int d1, int d2, int d3, int d4, int party) return tmp0; } -void output1(auto name, int d1, int party) +void output1(vector &name, int d1, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -111,7 +111,7 @@ void output1(auto name, int d1, int party) } } -void output2(auto name, int d1, int d2, int party) +void output2(vector> &name, int d1, int d2, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -127,7 +127,7 @@ void output2(auto name, int d1, int d2, int party) } } -void output3(auto name, int d1, int d2, int d3, int party) +void output3(vector>> &name, int d1, int d2, int d3, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { @@ -146,7 +146,7 @@ void output3(auto name, int d1, int d2, int d3, int party) } } -void output4(auto name, int d1, int d2, int d3, int d4, int party) +void output4(vector>>> &name, int d1, int d2, int d3, int d4, int party) { for (uint32_t i0 = 0; i0 < d1; i0++) { diff --git a/OnnxBridge/Secfloat/lib_secfloat/link_secfloat.cpp b/OnnxBridge/Secfloat/lib_secfloat/link_secfloat.cpp index eeadab65..f5d96a75 100644 --- a/OnnxBridge/Secfloat/lib_secfloat/link_secfloat.cpp +++ b/OnnxBridge/Secfloat/lib_secfloat/link_secfloat.cpp @@ -1,20 +1,5 @@ #include "inout.cpp" - -extern float intToFloat(int32_t m); -extern void Softmax2(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr); -extern void Ln(int32_t s1, vector &inArr, vector &outArr); -extern void getOutDer(int32_t s1, int32_t s2, vector> &batchSoft, vector> &lab, vector> &der); -extern void MatMul(int32_t s1, int32_t s2, int32_t s3, vector> &mat1, vector> &mat2, vector> &mat3); -extern void GemmAdd(int32_t s1, int32_t s2, vector> &prod, vector &bias, vector> &out); -extern void dotProduct2(int32_t s1, int32_t s2, vector> &arr1, vector> &arr2, vector &outArr); -extern void Relu(int32_t s1, vector &inArr, vector &outArr, vector &hotArr); -extern void LeakyRelu(int32_t s1, float alpha, vector &inArr, vector &outArr, vector &hotArr); -extern void getBiasDer(int32_t s1, int32_t s2, vector> &der, vector &biasDer); -extern void IfElse(int32_t s1, vector &dat, vector &hot, vector &out, bool flip); -extern void updateWeights(int32_t s, float lr, vector &bias, vector &der); -extern void getLoss(int32_t m, vector &lossTerms, vector &loss); -extern void computeMSELoss(int32_t m, int32_t s, vector> &target, vector> &fwdOut, vector &loss); -extern void Sigmoid(int32_t s1, vector &inArr, vector &outArr); +#include "common.cpp" FPArray __public_float_to_arithmetic(float f, int party = ALICE) { @@ -34,193 +19,53 @@ FPArray __public_float_to_baba(float f, int party = ALICE) return _ret; } -auto Add(const FPArray &x, const FPArray &y) -{ - return __fp_op->add(x, y); -} - -auto Mul(const FPArray &x, const FPArray &y) -{ - return __fp_op->mul(x, y); -} - -void ElemWiseSecretSharedVectorMult(int32_t s1, auto &arr1, auto &arr2, auto &outArr) -{ - for (uint32_t ii = 0; ii < s1; ii++) - { - outArr[ii] = Mul(arr1[ii], arr2[ii]); - } -} - -void ElemWiseActModelVectorMult(int32_t s1, auto &arr1, auto &arr2, auto &outArr) -{ - ElemWiseSecretSharedVectorMult(s1, arr1, arr2, outArr); -} - -void MaxPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t N1, int32_t C1, int32_t imgH, int32_t imgW, auto &inArr, auto &outArr) -{ - for (uint32_t n = 0; n < N; n++) - { - for (uint32_t c = 0; c < C; c++) - { - int32_t leftTopCornerH = (0 - zPadHLeft); - - int32_t extremeRightBottomCornerH = ((imgH - 1) + zPadHRight); - - int32_t ctH = 0; - - while ((((leftTopCornerH + ksizeH) - 1) <= extremeRightBottomCornerH)) - { - int32_t leftTopCornerW = (0 - zPadWLeft); - - int32_t extremeRightBottomCornerW = ((imgW - 1) + zPadWRight); - - int32_t ctW = 0; +// Gemm - while ((((leftTopCornerW + ksizeW) - 1) <= extremeRightBottomCornerW)) - { - FPArray maxi = __public_float_to_baba(0., ALICE); - - if ((((leftTopCornerH < 0) || (leftTopCornerH >= imgH)) || ((leftTopCornerW < 0) || (leftTopCornerW >= imgW)))) - { - maxi = __public_float_to_baba(0., ALICE); - } - else - { - maxi = inArr[n][c][leftTopCornerH][leftTopCornerW]; - } - for (uint32_t fh = 0; fh < ksizeH; fh++) - { - for (uint32_t fw = 0; fw < ksizeW; fw++) - { - int32_t curPosH = (leftTopCornerH + fh); - - int32_t curPosW = (leftTopCornerW + fw); - - FPArray temp = __public_float_to_baba(0., ALICE); - - if ((((curPosH < 0) || (curPosH >= imgH)) || ((curPosW < 0) || (curPosW >= imgW)))) - { - temp = __public_float_to_baba(0., ALICE); - } - else - { - temp = inArr[n][c][curPosH][curPosW]; - } - maxi = __fp_op->if_else(__fp_op->LT(__fp_op->sub(maxi, temp), __public_float_to_baba(0., ALICE)), temp, maxi); - } - } - outArr[n][c][ctH][ctW] = maxi; - - leftTopCornerW = (leftTopCornerW + strideW); - - ctW = (ctW + 1); - } - - leftTopCornerH = (leftTopCornerH + strideH); - - ctH = (ctH + 1); - } - } - } -} - -void AvgPool(int32_t N, int32_t C, int32_t H, int32_t W, int32_t ksizeH, int32_t ksizeW, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t N1, int32_t C1, int32_t imgH, int32_t imgW, auto &inArr, auto &outArr) +void Gemm(int32_t m, int32_t n, int32_t o, int32_t p, float alpha, float beta, int32_t transA, int32_t transB, int32_t x, int32_t k, vector> &A, vector> &B, vector &C, vector> &output) { - int32_t rows = (((N * C) * H) * W); - - auto filterAvg = make_vector_float(ALICE, rows); - - int32_t rowIdx = 0; - - for (uint32_t n = 0; n < N; n++) + if (transA) { - for (uint32_t c = 0; c < C; c++) + vector> tmpA = make_vector_float(ALICE, n, m); + for (uint32_t i = 0; i < m; i++) { - int32_t leftTopCornerH = (0 - zPadHLeft); - - int32_t extremeRightBottomCornerH = ((imgH - 1) + zPadHRight); - - int32_t ctH = 0; - - while ((((leftTopCornerH + ksizeH) - 1) <= extremeRightBottomCornerH)) + for (uint32_t j = 0; j < n; j++) { - int32_t leftTopCornerW = (0 - zPadWLeft); - - int32_t extremeRightBottomCornerW = ((imgW - 1) + zPadWRight); - - int32_t ctW = 0; - - while ((((leftTopCornerW + ksizeW) - 1) <= extremeRightBottomCornerW)) - { - FPArray curFilterSum = __public_float_to_baba(0., ALICE); - - for (uint32_t fh = 0; fh < ksizeH; fh++) - { - for (uint32_t fw = 0; fw < ksizeW; fw++) - { - int32_t curPosH = (leftTopCornerH + fh); - - int32_t curPosW = (leftTopCornerW + fw); - - FPArray temp = __public_float_to_baba(0., ALICE); - - if ((((curPosH < 0) || (curPosH >= imgH)) || ((curPosW < 0) || (curPosW >= imgW)))) - { - temp = __public_float_to_baba(0., ALICE); - } - else - { - temp = inArr[n][c][curPosH][curPosW]; - } - curFilterSum = __fp_op->add(curFilterSum, temp); - } - } - int32_t ksizeH64 = ksizeH; - - int32_t ksizeW64 = ksizeW; - - int32_t filterSz64 = (ksizeH64 * ksizeW64); - - FPArray curFilterAvg = __fp_op->div(curFilterSum, __public_float_to_baba(intToFloat(filterSz64), ALICE)); - - filterAvg[rowIdx] = curFilterAvg; - - rowIdx = (rowIdx + 1); - - leftTopCornerW = (leftTopCornerW + strideW); - - ctW = (ctW + 1); - } - - leftTopCornerH = (leftTopCornerH + strideH); - - ctH = (ctH + 1); + tmpA[j][i] = A[i][j]; } } + A = tmpA; + swap(m, n); } - for (uint32_t n = 0; n < N; n++) + if (transB) { - for (uint32_t c = 0; c < C; c++) + vector> tmpB = make_vector_float(ALICE, p, o); + for (uint32_t i = 0; i < o; i++) { - for (uint32_t h = 0; h < H; h++) + for (uint32_t j = 0; j < p; j++) { - for (uint32_t w = 0; w < W; w++) - { - outArr[n][c][h][w] = filterAvg[((((((n * C) * H) * W) + ((c * H) * W)) + (h * W)) + w)]; - } + tmpB[j][i] = B[i][j]; } } + B = tmpB; + swap(o, p); } + + vector> tmp = make_vector_float(ALICE, x, k); + + // Performing the matrix multiplication followed by the bias addition + MatMul(m, n, p, A, B, tmp); + GemmAdd(x,k,tmp,C,output); } -void Relu(int32_t s1, int32_t s2, auto &inArr, auto &outArr) +// Relu2 to Relu 4 + +void Relu(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr) { int32_t size = (s1 * s2); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -231,7 +76,7 @@ void Relu(int32_t s1, int32_t s2, auto &inArr, auto &outArr) reshapedInArr[linIdx] = inArr[i1][i2]; } } - Relu(size, reshapedInArr, reshapedOutArr); + Relu_nomask(size, reshapedInArr, reshapedOutArr); for (uint32_t i1 = 0; i1 < s1; i1++) { for (uint32_t i2 = 0; i2 < s2; i2++) @@ -243,13 +88,13 @@ void Relu(int32_t s1, int32_t s2, auto &inArr, auto &outArr) } } -void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) +void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr, vector>>> &outArr) { int32_t size = (((s1 * s2) * s3) * s4); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -267,7 +112,7 @@ void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &out } } - Relu(size, reshapedInArr, reshapedOutArr); + Relu_nomask(size, reshapedInArr, reshapedOutArr); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -286,13 +131,16 @@ void Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &out } } -void Leaky_Relu(int32_t s1, int32_t s2, float alpha, auto &inArr, auto &outArr) +// LeakyRelu2 and LeakyRelu4 + + +void Leaky_Relu(int32_t s1, int32_t s2, float alpha, vector> &inArr, vector> &outArr) { int32_t size = (s1 * s2); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -303,7 +151,7 @@ void Leaky_Relu(int32_t s1, int32_t s2, float alpha, auto &inArr, auto &outArr) reshapedInArr[linIdx] = inArr[i1][i2]; } } - Leaky_Relu(size, alpha, reshapedInArr, reshapedOutArr); + Leaky_Relu_nomask(size, alpha, reshapedInArr, reshapedOutArr); for (uint32_t i1 = 0; i1 < s1; i1++) { for (uint32_t i2 = 0; i2 < s2; i2++) @@ -315,13 +163,13 @@ void Leaky_Relu(int32_t s1, int32_t s2, float alpha, auto &inArr, auto &outArr) } } -void Leaky_Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, float alpha, auto &inArr, auto &outArr) +void Leaky_Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, float alpha, vector>>> &inArr, vector>>> &outArr) { int32_t size = (((s1 * s2) * s3) * s4); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -338,7 +186,7 @@ void Leaky_Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, float alpha, aut } } } - Leaky_Relu(size, alpha, reshapedInArr, reshapedOutArr); + Leaky_Relu_nomask(size, alpha, reshapedInArr, reshapedOutArr); for (uint32_t i1 = 0; i1 < s1; i1++) { for (uint32_t i2 = 0; i2 < s2; i2++) @@ -356,13 +204,15 @@ void Leaky_Relu(int32_t s1, int32_t s2, int32_t s3, int32_t s4, float alpha, aut } } -void Sigmoid(int32_t s1, int32_t s2, auto &inArr, auto &outArr) +// Sigmoid2 and Sigmoid4 + +void Sigmoid(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr) { int32_t size = (s1 * s2); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -385,13 +235,13 @@ void Sigmoid(int32_t s1, int32_t s2, auto &inArr, auto &outArr) } } -void Sigmoid(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) +void Sigmoid(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr, vector>>> &outArr) { int32_t size = (((s1 * s2) * s3) * s4); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -428,13 +278,15 @@ void Sigmoid(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto & } } -void Tanh(int32_t s1, int32_t s2, auto &inArr, auto &outArr) +// Tanh2 and Tanh4 + +void Tanh(int32_t s1, int32_t s2, vector> &inArr, vector> &outArr) { int32_t size = (s1 * s2); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -457,13 +309,13 @@ void Tanh(int32_t s1, int32_t s2, auto &inArr, auto &outArr) } } -void Tanh(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &outArr) +void Tanh(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr, vector>>> &outArr) { int32_t size = (((s1 * s2) * s3) * s4); - auto reshapedInArr = make_vector_float(ALICE, size); + vector reshapedInArr = make_vector_float(ALICE, size); - auto reshapedOutArr = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); for (uint32_t i1 = 0; i1 < s1; i1++) { @@ -499,3 +351,263 @@ void Tanh(int32_t s1, int32_t s2, int32_t s3, int32_t s4, auto &inArr, auto &out } } } + +// Elementary elemwise operations + +void ElemWiseAdd2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector_float(ALICE, size); + vector reshapedInArr2 = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseAdd(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseSub2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector_float(ALICE, size); + vector reshapedInArr2 = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseSub(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseMul2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector_float(ALICE, size); + vector reshapedInArr2 = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseMul(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseDiv2(int32_t s1, int32_t s2, vector> &inArr1, vector> &inArr2, vector> &outArr) { + int32_t size = (s1 * s2); + + vector reshapedInArr1 = make_vector_float(ALICE, size); + vector reshapedInArr2 = make_vector_float(ALICE, size); + vector reshapedOutArr = make_vector_float(ALICE, size); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + reshapedInArr1[linIdx] = inArr1[i1][i2]; + reshapedInArr2[linIdx] = inArr2[i1][i2]; + } + } + + ElemWiseDiv(size, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++) { + for (uint32_t i2 = 0; i2 < s2; i2++) { + int32_t linIdx = ((i1 * s2) + i2); + outArr[i1][i2] = reshapedOutArr[linIdx]; + } + } +} + +void ElemWiseAdd4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector_float(ALICE, sz); + vector reshapedInArr2 = make_vector_float(ALICE, sz); + vector reshapedOutArr = make_vector_float(ALICE, sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseAdd(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseSub4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector_float(ALICE, sz); + vector reshapedInArr2 = make_vector_float(ALICE, sz); + vector reshapedOutArr = make_vector_float(ALICE, sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseSub(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseMul4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector_float(ALICE, sz); + vector reshapedInArr2 = make_vector_float(ALICE, sz); + vector reshapedOutArr = make_vector_float(ALICE, sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseMul(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void ElemWiseDiv4(int32_t s1, int32_t s2, int32_t s3, int32_t s4, vector>>> &inArr1, vector>>> &inArr2, vector>>> &outArr){ + int32_t sz = s1*s2*s3*s4 ; + + vector reshapedInArr1 = make_vector_float(ALICE, sz); + vector reshapedInArr2 = make_vector_float(ALICE, sz); + vector reshapedOutArr = make_vector_float(ALICE, sz); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + reshapedInArr1[linIdx] = inArr1[i1][i2][i3][i4]; + reshapedInArr2[linIdx] = inArr2[i1][i2][i3][i4]; + } + } + } + } + + ElemWiseDiv(sz, reshapedInArr1, reshapedInArr2, reshapedOutArr); + + for (uint32_t i1 = 0; i1 < s1; i1++){ + for (uint32_t i2 = 0; i2 < s2; i2++){ + for (uint32_t i3 = 0; i3 < s3; i3++){ + for (uint32_t i4 = 0; i4 < s4; i4++){ + int32_t linIdx = (((i1*s2+i2)*s3+i3)*s4+i4); + outArr[i1][i2][i3][i4] = reshapedOutArr[linIdx]; + } + } + } + } +} + +void BatchNormalization( + int32_t N, int32_t C, int32_t H, int32_t W, + vector>>> &inArr, + vector &multArr, + vector &biasArr, + vector>>> &outArr +) +{ + vector>>> mult_expanded = make_vector_float(ALICE, N, C, H, W); + vector>>> bias_expanded = make_vector_float(ALICE, N, C, H, W); + + for (int32_t i = 0; i < N; i++){ + for (int32_t j = 0; j < C; j++){ + for (int32_t k = 0; k < H; k++){ + for (int32_t l = 0; l < W; l++){ + mult_expanded[i][j][k][l] = multArr[j]; + bias_expanded[i][j][k][l] = biasArr[j]; + } + } + } + } + + ElemWiseMul4(N, C, H, W, inArr, mult_expanded, outArr); + ElemWiseAdd4(N, C, H, W, outArr, bias_expanded, outArr); +} diff --git a/OnnxBridge/backend.py b/OnnxBridge/backend.py index 0f5781d8..3a6876f4 100644 --- a/OnnxBridge/backend.py +++ b/OnnxBridge/backend.py @@ -203,7 +203,7 @@ def prepare( program = process_output_nodes(program, model.graph, var_dict) logger.info("Reading Onnx file completed.") - program = optimizations.relu_maxpool_optimiser(program) + program = optimizations.relu_maxpool_optimiser(program, value_info) logger.info("Relu Maxpool Optimisation Done.") # Works only if debugging is on diff --git a/OnnxBridge/helper/compare_np_arrs.py b/OnnxBridge/helper/compare_np_arrs.py index 6f4115a3..0cfb05a3 100644 --- a/OnnxBridge/helper/compare_np_arrs.py +++ b/OnnxBridge/helper/compare_np_arrs.py @@ -64,4 +64,6 @@ def parse_args(): if args.verbose: print(args.inputs[0], ": ", arr1) - print(args.inputs[1], ": ", arr2) \ No newline at end of file + print(args.inputs[1], ": ", arr2) + + assert matching_prec != -1 diff --git a/OnnxBridge/helper/make_np_arr.py b/OnnxBridge/helper/make_np_arr.py index 21c0c0e9..59a1a3f8 100644 --- a/OnnxBridge/helper/make_np_arr.py +++ b/OnnxBridge/helper/make_np_arr.py @@ -9,12 +9,12 @@ def convert_raw_output_to_np(filename): array = [] with open(filename, "r") as f: for line in f: - match = matcher.fullmatch(line.rstrip()) - if match: - number = match.group(0) - - array.append(float(number)) - print(number) + numbers = line.split(" ") + for number in numbers: + match = matcher.fullmatch(number.rstrip()) + if match: + number = match.group(0) + array.append(float(number)) return np.array(array) @@ -25,4 +25,4 @@ def convert_raw_output_to_np(filename): path = os.path.dirname(output_fname) np_arr = convert_raw_output_to_np(output_fname) np.save(path + "output.npy", np.array(np_arr)) - print(f"Saved at {path}/output.npy") \ No newline at end of file + print(f"Saved at {path}/output.npy") diff --git a/OnnxBridge/helper/run_onnx.py b/OnnxBridge/helper/run_onnx.py index 9b1b7aeb..24907688 100755 --- a/OnnxBridge/helper/run_onnx.py +++ b/OnnxBridge/helper/run_onnx.py @@ -3,13 +3,13 @@ import sys, os if __name__ == "__main__": - input_np_arr = np.load(sys.argv[1], allow_pickle=True) - sess = rt.InferenceSession("../../Secfloat/demo/model.onnx") + input_np_arr = np.load(sys.argv[2], allow_pickle=True) + sess = rt.InferenceSession(sys.argv[1]) input_name = sess.get_inputs()[0].name pred_onx = sess.run(None, {input_name: input_np_arr})[0] print("Output:\n", pred_onx.flatten()) output_dir = "onnx_output" if not os.path.exists(output_dir): os.makedirs(output_dir) - output_name = os.path.join(output_dir, os.path.basename(sys.argv[1])) - np.save(output_name, pred_onx.flatten()) \ No newline at end of file + output_name = os.path.join(output_dir, os.path.basename("expected.npy")) + np.save(output_name, pred_onx.flatten()) diff --git a/OnnxBridge/requirements.txt b/OnnxBridge/requirements.txt index 27293f83..d23fe547 100644 --- a/OnnxBridge/requirements.txt +++ b/OnnxBridge/requirements.txt @@ -4,4 +4,4 @@ onnxsim==0.4.8 numpy==1.21.0 protobuf==3.20.1 torchvision==0.13.1 -idx2numpy==1.2.3 \ No newline at end of file +idx2numpy==1.2.3 diff --git a/OnnxBridge/tests/conftest.py b/OnnxBridge/tests/conftest.py new file mode 100644 index 00000000..7bffbb9f --- /dev/null +++ b/OnnxBridge/tests/conftest.py @@ -0,0 +1,90 @@ +import pytest +import tempfile +import shutil +import os +import sys + + +def pytest_addoption(parser): + parser.addoption( + "--backend", + action="store", + choices=["CLEARTEXT_LLAMA", "LLAMA", "SECFLOAT", "SECFLOAT_CLEARTEXT"], + help="backend : CLEARTEXT_LLAMA | LLAMA | SECFLOAT | SECFLOAT_CLEARTEXT", + required=True, + ) + parser.addoption( + "--batch_size", + action="store", + type=int, + help="batch size", + required=False, + ) + + +@pytest.fixture(scope="session") +def backend(request): + opt = request.config.getoption("--backend") + return opt + + +@pytest.fixture(scope="session") +def batch_size(request): + opt = request.config.getoption("--batch_size") + return opt + + +@pytest.fixture(scope="session", autouse=True) +def test_env(): + config = {} + # Get the directory path where the current script is located + script_directory = os.path.dirname(os.path.abspath(__file__)) + + test_dir = "onnxBridge_tests" + path = os.path.join(script_directory, test_dir) + if os.path.exists(path): + shutil.rmtree(path, ignore_errors=False) + os.listdir() + os.mkdir(path) + config["test_dir"] = path + return config + + +def make_dir(path): + print(path) + if os.path.exists(path): + shutil.rmtree(path, ignore_errors=False) + else: + os.mkdir(path) + return + + +# Hook to check if test failed +@pytest.hookimpl(tryfirst=True, hookwrapper=True) +def pytest_runtest_makereport(item, call): + # execute all other hooks to obtain the report object + outcome = yield + rep = outcome.get_result() + # set a report attribute for each phase of a call, which can + # be "setup", "call", "teardown" + setattr(item, "rep_" + rep.when, rep) + + +@pytest.fixture +def test_dir(request, test_env): + print("\nRequest node: ", request.node.name) + test_name_list = request.node.name.split("[") + parameter_name = test_name_list[1].split("]")[0] + full_test_name = test_name_list[0] + "_" + parameter_name + test_name = full_test_name[len("test_") :] + main_test_dir = test_env["test_dir"] + print("Main test dir: ", main_test_dir) + test_dir = os.path.join(main_test_dir, "test_" + test_name) + make_dir(test_dir) + + yield test_dir + # print("Test dir: ", test_dir) + # Remove dir only if test passed + if not request.node.rep_call.failed: + shutil.rmtree(test_dir, ignore_errors=False) + return diff --git a/OnnxBridge/tests/test_pipeline.py b/OnnxBridge/tests/test_pipeline.py new file mode 100644 index 00000000..c933d4ca --- /dev/null +++ b/OnnxBridge/tests/test_pipeline.py @@ -0,0 +1,98 @@ +import pytest +import os +from utils import ( + pre_process_input, + run_onnx, + compile_model, + run_backend, + compare_output, + append_np_arr, +) + +# Get the directory path where the current script is located +script_directory = os.path.dirname(os.path.abspath(__file__)) +ezpc_dir = os.path.join(script_directory, "..", "..") + +lenet = { + "model": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Lenet_mnist/lenet.onnx", + "model_batch": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Lenet_mnist/lenet_batch.onnx", + "input1": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Lenet_mnist/7.jpg", + "input2": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Lenet_mnist/2.jpg", + "preprocess": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Lenet_mnist/preprocess.py", +} +hinet = { + "model": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/cnn3_cifar.onnx", + "model_batch": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/cnn3_cifar_batch.onnx", + "input1": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/image_0.png", + "input2": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/image_1.png", + "input3": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/image_2.png", + "input4": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/image_3.png", + "input5": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/image_4.png", + "preprocess": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/HiNet_cifar10/preprocess.py", +} +chexpert = { + "model": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Chexpert/chexpert.onnx", + "input1": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Chexpert/cardiomegaly.jpg", + "preprocess": "https://github.com/drunkenlegend/ezpc-warehouse/raw/main/Chexpert/preprocess.py", +} + + +@pytest.mark.parametrize("model", ["lenet", "hinet", "chexpert"]) +def test_model(test_dir, backend, model): + os.chdir(test_dir) + model = globals()[model] + + # download the model & data & preprocessing_file + os.system(f"wget {model['model']} -O model.onnx") + os.system(f"wget {model['input1']} -O input1.jpg") + os.system(f"wget {model['preprocess']} -O preprocess.py") + + # preprocess the input + pre_process_input(1) + + # run the model with OnnxRuntime + run_onnx("input1.npy") + + # compile the model with backend + compile_model(backend) + + # run the model with backend + run_backend(backend, "input1.inp") + + # compare the output + compare_output() + + os.chdir("../..") + + +@pytest.mark.parametrize("model", ["lenet", "hinet"]) +def test_model_with_batch(test_dir, backend, model, batch_size): + os.chdir(test_dir) + model = globals()[model] + + # download the model & data & preprocessing_file + os.system(f"wget {model['model_batch']} -O model.onnx") + for i in range(batch_size): + os.system(f"wget {model[f'input{i+1}']} -O input{i+1}.jpg") + os.system(f"wget {model['preprocess']} -O preprocess.py") + + # preprocess the input + for i in range(batch_size): + pre_process_input(i + 1) + + # append the input + append_np_arr(model, batch_size) + + # run the model with OnnxRuntime + run_onnx("batch_input.npy") + + # compile the model with backend + compile_model(backend) + + # run the model with backend + run_backend(backend, "batch_input.inp") + + # compare the output + compare_output() + + os.chdir("../..") diff --git a/OnnxBridge/tests/utils.py b/OnnxBridge/tests/utils.py new file mode 100644 index 00000000..c27a8cbf --- /dev/null +++ b/OnnxBridge/tests/utils.py @@ -0,0 +1,156 @@ +import os +import numpy as np + +# Get the directory path where the current script is located +script_directory = os.path.dirname(os.path.abspath(__file__)) +ezpc_dir = os.path.join(script_directory, "..", "..") + + +def pre_process_input(i): + # check if input.jpg and preprocess.py exists + assert os.path.exists(f"input{i}.jpg") + assert os.path.exists("preprocess.py") + + # convert jpg -> npy + os.system(f"python3 preprocess.py input{i}.jpg") + assert os.path.exists(f"input{i}.npy") + + # convert npy -> inp + os.system( + f"python3 {ezpc_dir}/OnnxBridge/helper/convert_np_to_float_inp.py --inp input{i}.npy --out input{i}.inp" + ) + assert os.path.exists(f"input{i}.inp") + + +def run_onnx(input): + # check if model.onnx and input.npy exists + assert os.path.exists("model.onnx") + assert os.path.exists(input) + + # run the model with OnnxRuntime + os.system(f"python3 {ezpc_dir}/OnnxBridge/helper/run_onnx.py model.onnx {input}") + assert os.path.exists("onnx_output/expected.npy") + + +def compile_model(backend): + # check if model.onnx exists + assert os.path.exists("model.onnx") + + # compile the model + if backend == "LLAMA" or backend == "CLEARTEXT_LLAMA": + os.system( + f"python3 {ezpc_dir}/OnnxBridge/main.py --path model.onnx --generate executable --backend {backend} --scale 15 --bitlength 40 " + ) + elif backend == "SECFLOAT" or backend == "SECFLOAT_CLEARTEXT": + os.system( + f"python3 {ezpc_dir}/OnnxBridge/main.py --path model.onnx --generate executable --backend {backend} " + ) + + +def run_backend(backend, input): + # check if model.onnx and input.inp exists + assert os.path.exists("model.onnx") + assert os.path.exists(input) + + raw_output = os.path.join("raw_output.txt") + # run the model with backend + if backend == "CLEARTEXT_LLAMA": + # check if model compiled + assert os.path.exists("model_CLEARTEXT_LLAMA_15") + assert os.path.exists("model_input_weights.dat") + + os.system( + f"./model_CLEARTEXT_LLAMA_15 0 model_input_weights.dat < {input} > {raw_output}" + ) + elif backend == "LLAMA": + # check if model compiled + assert os.path.exists("model_LLAMA_15") + assert os.path.exists("model_input_weights.dat") + + # running dealer + os.system(f"./model_LLAMA_15 1") + + # running server + os.system(f"./model_LLAMA_15 2 model_input_weights.dat &") + + # running client + os.system(f"./model_LLAMA_15 3 127.0.0.1 < {input} > {raw_output}") + + elif backend == "SECFLOAT_CLEARTEXT": + # check if model compiled + assert os.path.exists("model_secfloat_ct") + assert os.path.exists("model_input_weights.inp") + + os.system( + f"cat {input} model_input_weights.inp | ./model_secfloat_ct > {raw_output}" + ) + + elif backend == "SECFLOAT": + # check if model compiled + assert os.path.exists("model_secfloat") + assert os.path.exists("model_input_weights.inp") + + # running server + os.system(f"./model_secfloat r=2 < model_input_weights.inp &") + + # running client + os.system(f"./model_secfloat r=1 < {input} > {raw_output}") + + # save the raw output as npy + os.system(f"python3 {ezpc_dir}/OnnxBridge/helper/make_np_arr.py {raw_output}") + assert os.path.exists("output.npy") + + +def compare_output(): + # check if output.npy and expected.npy exists + assert os.path.exists("output.npy") + assert os.path.exists("onnx_output/expected.npy") + + # compare the output + arr1 = np.load("output.npy", allow_pickle=True).flatten() + arr2 = np.load("onnx_output/expected.npy", allow_pickle=True).flatten() + + matching_prec = -1 + for prec in range(1, 10): + try: + np.testing.assert_almost_equal(arr1, arr2, decimal=prec) + except AssertionError: + break + matching_prec = prec + + print("Secure Output: " + str(arr1)) + print("Expected Output: " + str(arr2)) + + if matching_prec == -1: + print("Output mismatch") + else: + print("Arrays matched upto {} decimal points".format(matching_prec)) + + assert matching_prec != -1 + + +# function to append n numpy array as a single numpy array +def append_np_arr(model, n): + # assert model dictionary has n fields starting with 'input' + for i in range(n): + assert f"input{i+1}" in model + # assert all the input files exist + for i in range(n): + assert os.path.exists(f"input{i+1}.npy") + + # append all the input files on 1st dimension i.e batch dimension + for i in range(n): + out = np.load(f"input{i+1}.npy") + if i == 0: + final_out = out + else: + final_out = np.append(final_out, out, axis=0) + + # save the final output + np.save("batch_input.npy", final_out) + + # convert npy -> inp + os.system( + f"python3 {ezpc_dir}/OnnxBridge/helper/convert_np_to_float_inp.py --inp batch_input.npy --out batch_input.inp" + ) + assert os.path.exists(f"batch_input.inp") diff --git a/OnnxBridge/utils/concat.py b/OnnxBridge/utils/concat.py new file mode 100644 index 00000000..133408b0 --- /dev/null +++ b/OnnxBridge/utils/concat.py @@ -0,0 +1,104 @@ +ob, cb = "{", "}" + + +def get_axis_body_(i, n, axis): + ax1 = axis + 1 + + sub_ind = f"i{ax1}" + for j in range(1, i): + sub_ind += f"-inp{j}s{ax1}" + + if ax1 == 1: + sq_braks = f"[{sub_ind}][i2][i3][i4]" + elif ax1 == 2: + sq_braks = f"[i1][{sub_ind}][i3][i4]" + elif ax1 == 3: + sq_braks = f"[i1][i2][{sub_ind}][i4]" + else: + sq_braks = f"[i1][i2][i3][{sub_ind}]" + + assgn_stmt = f"outp[i1][i2][i3][i4] = inp{i}{sq_braks} ;" + + if i == n: + return assgn_stmt + else: + summ = f"inp1s{ax1}" + for j in range(2, i + 1): + summ += f"+inp{j}s{ax1}" + + else_body = get_axis_body_(i + 1, n, axis) + if_else = f"\ +if (i{ax1} < ({summ})) {ob}\n\ +{assgn_stmt}\n\ +{cb}\n\ +else {ob}\n\ +{else_body}\n\ +{cb}\n" + return if_else + + +def get_axis_body(n, axis): + return get_axis_body_(1, n, axis) + + +def get_function(n, backend=None): + dtype = "FPArray" if backend == "SECFLOAT" else "float" + + # Function arguments + inps = "" + for i in range(n): + st = "" + for j in range(4): + st += f"int32_t inp{i+1}s{j+1}, " + st += f"vector>>> &inp{i+1}, " + + inps += st + args = f"int32_t s1, int32_t s2, int32_t s3, int32_t s4, {inps}int32_t axis, vector>>> &outp" + + # Function signature + func_name = f"Concat{n}T{'4'*(n+1)}" + func_signature = f"void {func_name} ({args})" + + # Conditional body + axis_body = [get_axis_body(n, ax) for ax in range(4)] + cond_body = f"\ +if (axis==0) {ob}\n\ + {axis_body[0]}\n\ +{cb}\n\ + else if (axis==1) {ob}\n\ + {axis_body[1]}\n\ +{cb}\n\ + else if (axis==2) {ob}\n\ + {axis_body[2]}\n\ +{cb}\n\ + else {ob}\n\ + {axis_body[3]}\n\ +{cb}\n\ +" + # loop body + func_body = f"\ +for (uint32_t i1 = 0; i1 < s1 ; i1++) {ob}\n\ +for (uint32_t i2 = 0; i2 < s2 ; i2++) {ob}\n\ +for (uint32_t i3 = 0; i3 < s3 ; i3++) {ob}\n\ +for (uint32_t i4 = 0; i4 < s4 ; i4++) {ob}\n\ +{cond_body}\n\ +{cb} \n\ +{cb} \n\ +{cb} \n\ +{cb} \n\ +" + + # Total body + total = f"\ +{func_signature} {ob}\n\ +{func_body}\n\ +{cb}\n\ +" + + return total + + +def write_concat_implementations(concat_list, backend, file_path): + with open(file_path, "w") as fp: + for n in concat_list: + fp.write(get_function(n, backend)) diff --git a/OnnxBridge/utils/optimizations.py b/OnnxBridge/utils/optimizations.py index b24f88f7..91696eeb 100644 --- a/OnnxBridge/utils/optimizations.py +++ b/OnnxBridge/utils/optimizations.py @@ -97,7 +97,7 @@ def dump_model_weights_as_inp(model, model_dir, model_name): :return: Path to saved Model Weights """ weights_path = "" - weights_fname = model_name + "_input_weights_.inp" + weights_fname = model_name + "_input_weights.inp" weights_path = os.path.join(model_dir, weights_fname) # needed because initializers are not in sequential order and we need to strip them and dump in file @@ -223,7 +223,7 @@ def strip_weights(model): return new_model -def relu_maxpool_optimiser(program): +def relu_maxpool_optimiser(program, value_info): """ Optimises the Onnx Model by replacing the order where MaxPool appears after Relu. :param program: Onnx Model as a list of nodes @@ -237,6 +237,8 @@ def relu_maxpool_optimiser(program): relu.inputs, maxpool.inputs = maxpool.inputs, relu.inputs relu.outputs, maxpool.outputs = maxpool.outputs, relu.outputs + value_info[maxpool.outputs[0]] = value_info[relu.outputs[0]] + program[idx] = maxpool program[idx + 1] = relu diff --git a/SCI/src/cleartext_library_float.cpp b/SCI/src/cleartext_library_float.cpp index d6f2a3ab..642496c4 100644 --- a/SCI/src/cleartext_library_float.cpp +++ b/SCI/src/cleartext_library_float.cpp @@ -21,6 +21,7 @@ SOFTWARE. #include "cleartext_library_float.h" #include "math.h" +#include "float.h" using namespace std ; @@ -227,6 +228,13 @@ void Relu(int32_t s1, vector& inArr, vector& outArr, vector& } } +void Relu_nomask(int32_t s1, vector& inArr, vector& outArr) { + for (uint32_t i1 = 0; i1 < s1; i1++){ + outArr[i1] = (inArr[i1] < 0.) ? 0.0 : inArr[i1] ; + } +} + + void Conv2DReshapeMatMulOPGroup(int32_t N, int32_t finalH, int32_t finalW, int32_t CO, int32_t g, int32_t G, vector>& inputArr, vector>>>& outputArr){ int32_t COG = (CO / G) ; @@ -438,6 +446,110 @@ void MaxPool( } } +void MaxPool_nomask( + int32_t N, int32_t imgH, int32_t imgW, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t H, int32_t W, + vector>>> &inArr, + vector>>> &outArr, + int32_t padHLeft, int32_t padHRight, int32_t padWLeft, int32_t padWRight) +{ + for (int n = 0; n < N; n++) + { + for (int c = 0; c < C; c++) + { + int32_t ctH = 0; + for (int h = 0 - padHLeft; h + ksizeH <= imgH + padHRight; h += strideH) + { + int32_t ctW = 0; + for (int w = 0 - padWLeft; w + ksizeW <= imgW + padWRight; w += strideW) + { + float maxi = -FLT_MAX; + + if (!(h < 0 || h >= imgH || w < 0 || w >= imgW)) + maxi = inArr[n][h][w][c]; + + // std::cout << h << "," << w << " maxi1: " << maxi << std::endl; + for (int kh = 0; kh < ksizeH; kh++) + { + for (int kw = 0; kw < ksizeW; kw++) + { + int32_t cur_h = h + kh; + int32_t cur_w = w + kw; + if (cur_h < 0 || cur_h >= imgH || cur_w < 0 || cur_w >= imgW) + { + continue; + } + else + { + float val = inArr[n][cur_h][cur_w][c]; + // std::cout << cur_h << "," << cur_w << " val: " << val << " bool: " << (val > maxi) << std::endl; + maxi = std::max(maxi, inArr[n][cur_h][cur_w][c]); + } + } + } + + // std::cout << h << "," << w << " maxi2: " << maxi << std::endl; + outArr[n][ctH][ctW][c] = maxi; + ctW++; + } + ctH++; + } + } + } +} + +void AvgPool( + int32_t N, int32_t imgH, int32_t imgW, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t H, int32_t W, + vector>>>& inArr, + vector>>>& outArr) { + int size = N*H*C*W ; + int filter_size = ksizeH*ksizeW; + + for (int n = 0, size_k=0 ; n < N ; n++) { + for (int c = 0 ; c < C ; c++) { + for (int h = 0 ; h < H ; h++) { + for (int w = 0 ; w < W ; w++, size_k++) { + float avg_val = 0.0 ; + int img_h, img_w ; + img_h = h*strideH ; + img_w = w*strideW ; + + for (int kh = 0, filter_k = 0 ; kh < ksizeH ; kh++) { + img_h = h*strideH + kh ; + + for (int kw = 0 ; kw < ksizeW ; kw++, filter_k++) { + img_w = w*strideW + kw ; + float val ; + int this_h, this_w ; + + if (img_h < 0 || img_h >= imgH || img_w < 0 || img_w >= imgW) { + val = 0.0 ; + this_h = -1 ; + this_w = -1 ; + } + else { + val = inArr[n][img_h][img_w][c] ; + this_h = kh ; + this_w = kw ; + } + + avg_val += val ; + } + } + + outArr[n][h][w][c] = avg_val/filter_size ; + } + } + } + } +} + + void ConvDerReshapeMatMulOPGroup(int32_t N, int32_t finalH, int32_t finalW, int32_t CO, int32_t g, int32_t G, vector>& inputArr, vector>>>& outputArr){ diff --git a/SCI/src/cleartext_library_float.h b/SCI/src/cleartext_library_float.h index 0e0a8a84..37007ee5 100644 --- a/SCI/src/cleartext_library_float.h +++ b/SCI/src/cleartext_library_float.h @@ -59,6 +59,7 @@ void GemmAdd(int32_t s1, int32_t s2, vector>& prod, vector& void dotProduct2(int32_t s1, int32_t s2, vector>& arr1, vector>& arr2, vector& outArr); void vsumIfElse(int32_t s1, int32_t s2, vector> &arr, vector>& hotarr, vector& outArr) ; void Relu(int32_t s1, vector& inArr, vector& outArr, vector& hotArr); +void Relu_nomask(int32_t s1, vector& inArr, vector& outArr); void getBiasDer(int32_t s1, int32_t s2, vector>& der, vector& biasDer); void IfElse(int32_t s1, vector& dat, vector& hot, vector& out, bool flip); void updateWeights(int32_t s, float lr, vector& bias, vector& der); @@ -92,6 +93,23 @@ void MaxPool( vector>>> &poolmask, vector>>>& outArr) ; +void MaxPool_nomask( + int32_t N, int32_t H, int32_t W, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t imgH, int32_t imgW, + vector>>> &inArr, + vector>>> &outArr, + int32_t padHLeft = 0, int32_t padHRight = 0, int32_t padWLeft = 0, int32_t padWRight = 0); + +void AvgPool( + int32_t N, int32_t H, int32_t W, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t imgH, int32_t imgW, + vector>>>& inArr, + vector>>>& outArr) ; + void ConvDerWrapper( int32_t N, int32_t H, int32_t W, int32_t CI, int32_t FH, int32_t FW, int32_t CO, int32_t zPadHLeft, int32_t zPadHRight, int32_t zPadWLeft, int32_t zPadWRight, int32_t strideH, int32_t strideW, int32_t G, diff --git a/SCI/src/library_float.h b/SCI/src/library_float.h index 2ba7560c..57212d3b 100644 --- a/SCI/src/library_float.h +++ b/SCI/src/library_float.h @@ -221,12 +221,16 @@ void GemmAdd3(int32_t s1, int32_t s2, int32_t s3, vector>> &outArr); // hotArr is positive if input is negative -static vector DEFAULT_VECTOR; void Relu( int32_t s1, vector &inArr, vector &outArr, - vector &hotArr = DEFAULT_VECTOR); + vector &hotArr); + +void Relu_nomask( + int32_t s1, + vector &inArr, + vector &outArr) ; // hotArr is positive if input is negative void Leaky_Relu( @@ -234,7 +238,13 @@ void Leaky_Relu( float alpha, vector &inArr, vector &outArr, - vector &hotArr = DEFAULT_VECTOR); + vector &hotArr); + +void Leaky_Relu_nomask( + int32_t s1, + float alpha, + vector &inArr, + vector &outArr) ; void getBiasDer(int32_t m, int32_t s2, vector> &batchSoftDer, vector &biasDer); @@ -295,6 +305,23 @@ void MaxPool( vector>>> &poolmask, vector>>>& outArr) ; +void MaxPool_nomask( + int32_t N, int32_t H, int32_t W, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t imgH, int32_t imgW, + vector>>> &inArr, + vector>>> &outArr, + int32_t padHLeft = 0, int32_t padHRight = 0, int32_t padWLeft = 0, int32_t padWRight = 0); + +void Avgpool( + int32_t N, int32_t H, int32_t W, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t imgH, int32_t imgW, + vector>>>& inArr, + vector>>>& outArr) ; + // Der arr comes in as FH, FW, CI, CO // Der arr is filled as CO, CI, FH, FW void ConvDerWrapper( @@ -332,7 +359,6 @@ void PoolProp( void computeMSELoss(int32_t m, int32_t s, vector> &target, vector> &fwdOut, vector &loss); - // GPT void Gelu(int32_t s1, vector &inArr, vector &outArr) ; diff --git a/SCI/src/library_float_beacon.cpp b/SCI/src/library_float_beacon.cpp index a638b87b..b06f9863 100644 --- a/SCI/src/library_float_beacon.cpp +++ b/SCI/src/library_float_beacon.cpp @@ -713,4 +713,137 @@ vector batched_matrix_multiplication(vector &x, vector avgs ; + for (int i = 0 ; i < chunk ; i++) { + avgs.push_back( + fpopArr[tid]->input( + WHICHPARTY, filterSize, Row_s[i], Row_z[i], Row_m[i], Row_e[i], m_bits, e_bits + ) + ) ; + } + + FPArray filterAvg = fpopArr[tid]->vector_sum(avgs) ; + FPArray muller = __fp_op->input(ALICE, filterSize, (float)(1.0/filterSize), m_bits, e_bits) ; + filterAvg = fpopArr[tid]->mul(filterAvg, muller) ; + + memcpy(pooled_s, filterAvg.s, chunk*sizeof(uint8_t)) ; + memcpy(pooled_z, filterAvg.z, chunk*sizeof(uint8_t)) ; + memcpy(pooled_m, filterAvg.m, chunk*sizeof(uint64_t)) ; + memcpy(pooled_e, filterAvg.e, chunk*sizeof(uint64_t)) ; +} + +void Avgpool_nomask( + int32_t N, int32_t imgH, int32_t imgW, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t H, int32_t W, + vector>>>& inArr, + vector>>>& outArr) { + + int m_bits = inArr[0][0][0][0].m_bits, e_bits = inArr[0][0][0][0].e_bits ; + int size = N*H*C*W ; + int filter_size = ksizeH*ksizeW; + + uint8_t **Row_s = new uint8_t*[size] ; + uint8_t **Row_z = new uint8_t*[size] ; + uint64_t **Row_m = new uint64_t*[size] ; + uint64_t **Row_e = new uint64_t*[size] ; + + uint8_t *pooled_s = new uint8_t[size] ; + uint8_t *pooled_z = new uint8_t[size] ; + uint64_t *pooled_m = new uint64_t[size] ; + uint64_t *pooled_e = new uint64_t[size] ; + + for (int i = 0 ; i < size ; i++) { + Row_s[i] = new uint8_t[filter_size] ; + Row_z[i] = new uint8_t[filter_size] ; + Row_m[i] = new uint64_t[filter_size] ; + Row_e[i] = new uint64_t[filter_size] ; + } + + for (int n = 0, size_k=0 ; n < N ; n++) { + for (int c = 0 ; c < C ; c++) { + for (int h = 0 ; h < H ; h++) { + for (int w = 0 ; w < W ; w++, size_k++) { + for (int kh = 0, filter_k = 0 ; kh < ksizeH ; kh++) { + for (int kw = 0 ; kw < ksizeW ; kw++, filter_k++) { + + int img_h = h*strideH + kh ; + int img_w = w*strideW + kw ; + uint8_t s, z ; + uint64_t m, e ; + + if (img_h < 0 || img_h >= imgH || img_w < 0 || img_w >= imgW) { + s = 0 ; + z = 1 ; + m = 0 ; + e = 0 ; + } else { + s = inArr[n][img_h][img_w][c].s[0] ; + z = inArr[n][img_h][img_w][c].z[0] ; + m = inArr[n][img_h][img_w][c].m[0] ; + e = inArr[n][img_h][img_w][c].e[0] ; + } + + Row_s[size_k][filter_k] = s ; + Row_z[size_k][filter_k] = z ; + Row_m[size_k][filter_k] = m ; + Row_e[size_k][filter_k] = e ; + } + } + } + } + } + } + + vector chunks = get_chunks(size, __nt) ; + thread threads[MAX_THREADS] ; + int offset = 0 ; + for (int i = 0 ; i < __nt ; i++) { + if (chunks[i] > 0) { + threads[i] = thread(Avgpool_thread, + i, chunks[i], filter_size, m_bits, e_bits, + Row_s+offset, Row_z+offset, Row_m+offset, Row_e+offset, + pooled_s+offset, pooled_z+offset, pooled_m+offset, pooled_e+offset + ) ; + offset += chunks[i] ; + } + } + + for (int i = 0 ; i < __nt ; i++) + if (chunks[i] > 0) + threads[i].join() ; + + for (uint32_t n = 0, outarr_k=0; n < N; n++) { + for (uint32_t c = 0; c < C; c++) { + for (uint32_t h = 0; h < H; h++) { + for (uint32_t w = 0; w < W; w++, outarr_k++) { + outArr[n][h][w][c].s[0] = pooled_s[outarr_k] ; + outArr[n][h][w][c].z[0] = pooled_z[outarr_k] ; + outArr[n][h][w][c].m[0] = pooled_m[outarr_k] ; + outArr[n][h][w][c].e[0] = pooled_e[outarr_k] ; + } + } + } + } + + for (int i = 0 ; i < size ; i++) { + delete[] Row_s[i] ; + delete[] Row_z[i] ; + delete[] Row_m[i] ; + delete[] Row_e[i] ; + } + + delete[] pooled_s ; delete[] Row_s ; + delete[] pooled_z ; delete[] Row_z ; + delete[] pooled_m ; delete[] Row_m ; + delete[] pooled_e ; delete[] Row_e ; +} diff --git a/SCI/src/library_float_common.cpp b/SCI/src/library_float_common.cpp index 7724f39b..c15bef9b 100644 --- a/SCI/src/library_float_common.cpp +++ b/SCI/src/library_float_common.cpp @@ -896,6 +896,85 @@ void Relu( delete[] hot ; } +void Relu_nomask_thread( + int tid, int sz, int m_bits, int e_bits, + uint8_t *in_s, uint8_t *in_z, uint64_t *in_m, uint64_t *in_e, + uint8_t *out_s, uint8_t *out_z, uint64_t *out_m, uint64_t *out_e + ) { + + FPArray in_flat = fpopArr[tid]->input(WHICHPARTY, sz, in_s, in_z, in_m, in_e, m_bits, e_bits) ; + + BoolArray sgn, zero ; + FixArray _2, _3 ; + std::tie(sgn, zero, _2, _3) = get_components(tid, in_flat) ; + + FPArray zero_flat = fpopArr[tid]->input(ALICE, sz, (float)0.0, m_bits, e_bits) ; + FPArray out_flat = fpopArr[tid]->if_else(sgn, zero_flat, in_flat) ; + + memcpy(out_s, out_flat.s, sz*sizeof(uint8_t)) ; + memcpy(out_z, out_flat.z, sz*sizeof(uint8_t)) ; + memcpy(out_m, out_flat.m, sz*sizeof(uint64_t)) ; + memcpy(out_e, out_flat.e, sz*sizeof(uint64_t)) ; +} + +void Relu_nomask( + int32_t s1, + vector &inArr, + vector &outArr) { + int m_bits, e_bits ; + m_bits = inArr[0].m_bits ; + e_bits = inArr[0].e_bits ; + + uint8_t *in_s = new uint8_t[s1] ; + uint8_t *in_z = new uint8_t[s1] ; + uint64_t *in_m = new uint64_t[s1] ; + uint64_t *in_e = new uint64_t[s1] ; + for (int i = 0 ; i < s1 ; i++) { + in_s[i] = inArr[i].s[0] ; + in_z[i] = inArr[i].z[0] ; + in_m[i] = inArr[i].m[0] ; + in_e[i] = inArr[i].e[0] ; + } + + uint8_t *out_s = new uint8_t[s1] ; + uint8_t *out_z = new uint8_t[s1] ; + uint64_t *out_m = new uint64_t[s1] ; + uint64_t *out_e = new uint64_t[s1] ; + + vector chunks = get_chunks(s1, __nt) ; + thread threads[MAX_THREADS] ; + int offset = 0 ; + for (int i = 0 ; i < __nt ; i++) { + if (chunks[i] > 0) { + threads[i] = thread(Relu_nomask_thread, + i, chunks[i], m_bits, e_bits, + in_s + offset, in_z + offset, in_m + offset, in_e + offset, + out_s + offset, out_z + offset, out_m + offset, out_e + offset + ) ; + offset += chunks[i] ; + } + } + + for (int i = 0 ; i < __nt ; i++) + if (chunks[i] > 0) + threads[i].join() ; + + for (int i = 0 ; i < s1 ; i++) { + outArr[i].m_bits = m_bits ; + outArr[i].e_bits = e_bits ; + + outArr[i].s[0] = out_s[i] ; + outArr[i].z[0] = out_z[i] ; + outArr[i].m[0] = out_m[i] ; + outArr[i].e[0] = out_e[i] ; + } + + delete[] in_s ; delete[] out_s ; + delete[] in_z ; delete[] out_z ; + delete[] in_m ; delete[] out_m ; + delete[] in_e ; delete[] out_e ; +} + void Leaky_Relu_thread( float alpha, int tid, int sz, int m_bits, int e_bits, uint8_t *in_s, uint8_t *in_z, uint64_t *in_m, uint64_t *in_e, @@ -910,7 +989,7 @@ void Leaky_Relu_thread( FPArray alpha_flat = __fp_op->input(ALICE, 1, alpha, m_bits, e_bits); - FPArray alphax_flat = __fp_op->mul(alpha_flat, in_flat); + FPArray alphax_flat = fpopArr[tid]->mul(alpha_flat, in_flat); FPArray out_flat = fpopArr[tid]->if_else(sgn, alphax_flat, in_flat); memcpy(out_s, out_flat.s, sz * sizeof(uint8_t)); @@ -991,6 +1070,91 @@ void Leaky_Relu( delete[] hot; } +void Leaky_Relu_nomask_thread( + float alpha, int tid, int sz, int m_bits, int e_bits, + uint8_t *in_s, uint8_t *in_z, uint64_t *in_m, uint64_t *in_e, + uint8_t *out_s, uint8_t *out_z, uint64_t *out_m, uint64_t *out_e) +{ + + FPArray in_flat = fpopArr[tid]->input(WHICHPARTY, sz, in_s, in_z, in_m, in_e, m_bits, e_bits); + FPArray alpha_flat = __fp_op->input(ALICE, 1, alpha, m_bits, e_bits); + + BoolArray sgn, zero; + FixArray _2, _3; + std::tie(sgn, zero, _2, _3) = get_components(tid, in_flat); + + FPArray alphax_flat = fpopArr[tid]->mul(alpha_flat, in_flat); + FPArray out_flat = fpopArr[tid]->if_else(sgn, alphax_flat, in_flat); + + memcpy(out_s, out_flat.s, sz * sizeof(uint8_t)); + memcpy(out_z, out_flat.z, sz * sizeof(uint8_t)); + memcpy(out_m, out_flat.m, sz * sizeof(uint64_t)); + memcpy(out_e, out_flat.e, sz * sizeof(uint64_t)); +} + +void Leaky_Relu_nomask( + int32_t s1, + float alpha, + vector &inArr, + vector &outArr) +{ + int m_bits, e_bits; + m_bits = inArr[0].m_bits; + e_bits = inArr[0].e_bits; + + uint8_t *in_s = new uint8_t[s1]; + uint8_t *in_z = new uint8_t[s1]; + uint64_t *in_m = new uint64_t[s1]; + uint64_t *in_e = new uint64_t[s1]; + for (int i = 0; i < s1; i++) + { + in_s[i] = inArr[i].s[0]; + in_z[i] = inArr[i].z[0]; + in_m[i] = inArr[i].m[0]; + in_e[i] = inArr[i].e[0]; + } + + uint8_t *out_s = new uint8_t[s1]; + uint8_t *out_z = new uint8_t[s1]; + uint64_t *out_m = new uint64_t[s1]; + uint64_t *out_e = new uint64_t[s1]; + + vector chunks = get_chunks(s1, __nt); + thread threads[MAX_THREADS]; + int offset = 0; + for (int i = 0; i < __nt; i++) + { + if (chunks[i] > 0) + { + threads[i] = thread(Leaky_Relu_nomask_thread, + alpha, i, chunks[i], m_bits, e_bits, + in_s + offset, in_z + offset, in_m + offset, in_e + offset, + out_s + offset, out_z + offset, out_m + offset, out_e + offset); + offset += chunks[i]; + } + } + + for (int i = 0; i < __nt; i++) + if (chunks[i] > 0) + threads[i].join(); + + for (int i = 0; i < s1; i++) + { + outArr[i].m_bits = m_bits; + outArr[i].e_bits = e_bits; + + outArr[i].s[0] = out_s[i]; + outArr[i].z[0] = out_z[i]; + outArr[i].m[0] = out_m[i]; + outArr[i].e[0] = out_e[i]; + } + + delete[] in_s; delete[] out_s; + delete[] in_z; delete[] out_z; + delete[] in_m; delete[] out_m; + delete[] in_e; delete[] out_e; +} + void SubtractOne_thread( int32_t tid, int32_t sz, int m_bits, int e_bits, uint8_t *in_s, uint8_t *in_z, uint64_t *in_m, uint64_t *in_e, @@ -1996,6 +2160,145 @@ void MaxPool( delete[] Mask ; } +void Maxpool_nomask_thread( + int tid, int chunk, int filterSize, int m_bits, int e_bits, + uint8_t **Row_s, uint8_t **Row_z, uint64_t **Row_m, uint64_t **Row_e, + uint8_t *pooled_s, uint8_t *pooled_z, uint64_t *pooled_m, uint64_t *pooled_e + ) { + + vector maxs ; + for (int i = 0 ; i < chunk ; i++) { + maxs.push_back( + fpopArr[tid]->input( + WHICHPARTY, filterSize, Row_s[i], Row_z[i], Row_m[i], Row_e[i], m_bits, e_bits + ) + ) ; + } + + FPArray filterMax = fpopArr[tid]->max(maxs) ; + + memcpy(pooled_s, filterMax.s, chunk*sizeof(uint8_t)) ; + memcpy(pooled_z, filterMax.z, chunk*sizeof(uint8_t)) ; + memcpy(pooled_m, filterMax.m, chunk*sizeof(uint64_t)) ; + memcpy(pooled_e, filterMax.e, chunk*sizeof(uint64_t)) ; +} + +void MaxPool_nomask( + int32_t N, int32_t imgH, int32_t imgW, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t H, int32_t W, + vector>>> &inArr, + vector>>> &outArr, + int32_t padHLeft, int32_t padHRight, int32_t padWLeft, int32_t padWRight) +{ + + if (padHLeft != 0 or padHRight != 0 or padWLeft != 0 or padWRight != 0) + { + cout << "Padding not iplemented in Secfloat MaxPool_nomask" << endl; + exit(0); + } + + int m_bits = inArr[0][0][0][0].m_bits, e_bits = inArr[0][0][0][0].e_bits ; + int size = N*H*C*W ; + int filter_size = ksizeH*ksizeW; + + uint8_t **Row_s = new uint8_t*[size] ; + uint8_t **Row_z = new uint8_t*[size] ; + uint64_t **Row_m = new uint64_t*[size] ; + uint64_t **Row_e = new uint64_t*[size] ; + + uint8_t *pooled_s = new uint8_t[size] ; + uint8_t *pooled_z = new uint8_t[size] ; + uint64_t *pooled_m = new uint64_t[size] ; + uint64_t *pooled_e = new uint64_t[size] ; + + for (int i = 0 ; i < size ; i++) { + Row_s[i] = new uint8_t[filter_size] ; + Row_z[i] = new uint8_t[filter_size] ; + Row_m[i] = new uint64_t[filter_size] ; + Row_e[i] = new uint64_t[filter_size] ; + } + + for (int n = 0, size_k=0 ; n < N ; n++) { + for (int c = 0 ; c < C ; c++) { + for (int h = 0 ; h < H ; h++) { + for (int w = 0 ; w < W ; w++, size_k++) { + for (int kh = 0, filter_k = 0 ; kh < ksizeH ; kh++) { + for (int kw = 0 ; kw < ksizeW ; kw++, filter_k++) { + + int img_h = h*strideH + kh ; + int img_w = w*strideW + kw ; + uint8_t s, z ; + uint64_t m, e ; + + if (img_h < 0 || img_h >= imgH || img_w < 0 || img_w >= imgW) { + s = 0 ; + z = 1 ; + m = 0 ; + e = 0 ; + } else { + s = inArr[n][img_h][img_w][c].s[0] ; + z = inArr[n][img_h][img_w][c].z[0] ; + m = inArr[n][img_h][img_w][c].m[0] ; + e = inArr[n][img_h][img_w][c].e[0] ; + } + + Row_s[size_k][filter_k] = s ; + Row_z[size_k][filter_k] = z ; + Row_m[size_k][filter_k] = m ; + Row_e[size_k][filter_k] = e ; + } + } + } + } + } + } + + vector chunks = get_chunks(size, __nt) ; + thread threads[MAX_THREADS] ; + int offset = 0 ; + for (int i = 0 ; i < __nt ; i++) { + if (chunks[i] > 0) { + threads[i] = thread(Maxpool_nomask_thread, + i, chunks[i], filter_size, m_bits, e_bits, + Row_s+offset, Row_z+offset, Row_m+offset, Row_e+offset, + pooled_s+offset, pooled_z+offset, pooled_m+offset, pooled_e+offset + ) ; + offset += chunks[i] ; + } + } + + for (int i = 0 ; i < __nt ; i++) + if (chunks[i] > 0) + threads[i].join() ; + + for (uint32_t n = 0, outarr_k=0; n < N; n++) { + for (uint32_t c = 0; c < C; c++) { + for (uint32_t h = 0; h < H; h++) { + for (uint32_t w = 0; w < W; w++, outarr_k++) { + outArr[n][h][w][c].s[0] = pooled_s[outarr_k] ; + outArr[n][h][w][c].z[0] = pooled_z[outarr_k] ; + outArr[n][h][w][c].m[0] = pooled_m[outarr_k] ; + outArr[n][h][w][c].e[0] = pooled_e[outarr_k] ; + } + } + } + } + + for (int i = 0 ; i < size ; i++) { + delete[] Row_s[i] ; + delete[] Row_z[i] ; + delete[] Row_m[i] ; + delete[] Row_e[i] ; + } + + delete[] pooled_s ; delete[] Row_s ; + delete[] pooled_z ; delete[] Row_z ; + delete[] pooled_m ; delete[] Row_m ; + delete[] pooled_e ; delete[] Row_e ; +} + void vsumIfElse(int32_t s1, int32_t s2, vector>& arr, vector>& condArr, vector& outArr) { int m_bits, e_bits ; int sz = s1*s2 ; @@ -2031,7 +2334,7 @@ void vsumIfElse(int32_t s1, int32_t s2, vector>& arr, vector>>>& inArr, vector& biasArr, vector>>>& outArr) { @@ -2040,18 +2343,18 @@ void ConvAdd(int32_t s1, int32_t s2, int32_t s3, int32_t s4, m_bits = inArr[0][0][0][0].m_bits ; e_bits = inArr[0][0][0][0].e_bits ; - sz = s1*s2*s3*s4 ; + sz = N*H*W*C ; vector arr1 = make_vector_float(ALICE, sz) ; vector arr2 = make_vector_float(ALICE, sz) ; vector out = make_vector_float(ALICE, sz) ; - for (int i1=0 ; i1 < s1 ; i1++) { - for (int i2 = 0 ; i2 < s2 ; i2++) { - for (int i3 = 0 ; i3 < s3 ; i3++) { - for (int i4 = 0 ; i4 < s4 ; i4++) { - arr1[i1*s2*s3*s4 + i2*s3*s4 + i3*s4 + i4] = inArr[i1][i2][i3][i4] ; - arr2[i1*s2*s3*s4 + i2*s3*s4 + i3*s4 + i4] = biasArr[i4] ; + for (int i1=0 ; i1 < N ; i1++) { + for (int i2 = 0 ; i2 < H ; i2++) { + for (int i3 = 0 ; i3 < W ; i3++) { + for (int i4 = 0 ; i4 < C ; i4++) { + arr1[i1*H*W*C + i2*W*C + i3*C + i4] = inArr[i1][i2][i3][i4] ; + arr2[i1*H*W*C + i2*W*C + i3*C + i4] = biasArr[i4] ; } } } @@ -2059,11 +2362,11 @@ void ConvAdd(int32_t s1, int32_t s2, int32_t s3, int32_t s4, ElemWiseAdd(sz, arr1, arr2, out) ; - for (int i1=0 ; i1 < s1 ; i1++) { - for (int i2 = 0 ; i2 < s2 ; i2++) { - for (int i3 = 0 ; i3 < s3 ; i3++) { - for (int i4 = 0 ; i4 < s4 ; i4++) { - outArr[i1][i2][i3][i4] = out[i1*s2*s3*s4 + i2*s3*s4 + i3*s4 + i4] ; + for (int i1=0 ; i1 < N ; i1++) { + for (int i2 = 0 ; i2 < H ; i2++) { + for (int i3 = 0 ; i3 < W ; i3++) { + for (int i4 = 0 ; i4 < C ; i4++) { + outArr[i1][i2][i3][i4] = out[i1*H*W*C + i2*W*C + i3*C + i4] ; } } } @@ -2333,7 +2636,6 @@ void GetPooledDer( } } - void PoolProp( int32_t BATCH, int32_t outc, int32_t img2, int32_t imgp, int32_t img1, int32_t pk, int32_t ps, @@ -2494,6 +2796,7 @@ void PoolProp( } } + void computeMSELoss(int32_t m, int32_t s, vector> &target, vector> &fwdOut, vector &loss) { vector target_flat = make_vector_float(ALICE, m); diff --git a/SCI/src/library_float_secfloat.cpp b/SCI/src/library_float_secfloat.cpp index 0cbfe7f8..42c8718b 100644 --- a/SCI/src/library_float_secfloat.cpp +++ b/SCI/src/library_float_secfloat.cpp @@ -760,4 +760,137 @@ vector batched_matrix_multiplication(vector &x, vector avgs ; + for (int i = 0 ; i < chunk ; i++) { + avgs.push_back( + fpopArr[tid]->input( + WHICHPARTY, filterSize, Row_s[i], Row_z[i], Row_m[i], Row_e[i], m_bits, e_bits + ) + ) ; + } + + FPArray filterAvg = fpopArr[tid]->treesum(avgs) ; + FPArray muller = __fp_op->input(ALICE, filterSize, (float)(1.0/filterSize), m_bits, e_bits) ; + filterAvg = fpopArr[tid]->mul(filterAvg, muller) ; + + memcpy(pooled_s, filterAvg.s, chunk*sizeof(uint8_t)) ; + memcpy(pooled_z, filterAvg.z, chunk*sizeof(uint8_t)) ; + memcpy(pooled_m, filterAvg.m, chunk*sizeof(uint64_t)) ; + memcpy(pooled_e, filterAvg.e, chunk*sizeof(uint64_t)) ; +} + +void Avgpool( + int32_t N, int32_t imgH, int32_t imgW, int32_t C, + int32_t ksizeH, int32_t ksizeW, + int32_t strideH, int32_t strideW, + int32_t H, int32_t W, + vector>>>& inArr, + vector>>>& outArr) { + + int m_bits = inArr[0][0][0][0].m_bits, e_bits = inArr[0][0][0][0].e_bits ; + int size = N*H*C*W ; + int filter_size = ksizeH*ksizeW; + + uint8_t **Row_s = new uint8_t*[size] ; + uint8_t **Row_z = new uint8_t*[size] ; + uint64_t **Row_m = new uint64_t*[size] ; + uint64_t **Row_e = new uint64_t*[size] ; + + uint8_t *pooled_s = new uint8_t[size] ; + uint8_t *pooled_z = new uint8_t[size] ; + uint64_t *pooled_m = new uint64_t[size] ; + uint64_t *pooled_e = new uint64_t[size] ; + + for (int i = 0 ; i < size ; i++) { + Row_s[i] = new uint8_t[filter_size] ; + Row_z[i] = new uint8_t[filter_size] ; + Row_m[i] = new uint64_t[filter_size] ; + Row_e[i] = new uint64_t[filter_size] ; + } + + for (int n = 0, size_k=0 ; n < N ; n++) { + for (int c = 0 ; c < C ; c++) { + for (int h = 0 ; h < H ; h++) { + for (int w = 0 ; w < W ; w++, size_k++) { + for (int kh = 0, filter_k = 0 ; kh < ksizeH ; kh++) { + for (int kw = 0 ; kw < ksizeW ; kw++, filter_k++) { + + int img_h = h*strideH + kh ; + int img_w = w*strideW + kw ; + uint8_t s, z ; + uint64_t m, e ; + + if (img_h < 0 || img_h >= imgH || img_w < 0 || img_w >= imgW) { + s = 0 ; + z = 1 ; + m = 0 ; + e = 0 ; + } else { + s = inArr[n][img_h][img_w][c].s[0] ; + z = inArr[n][img_h][img_w][c].z[0] ; + m = inArr[n][img_h][img_w][c].m[0] ; + e = inArr[n][img_h][img_w][c].e[0] ; + } + + Row_s[size_k][filter_k] = s ; + Row_z[size_k][filter_k] = z ; + Row_m[size_k][filter_k] = m ; + Row_e[size_k][filter_k] = e ; + } + } + } + } + } + } + + vector chunks = get_chunks(size, __nt) ; + thread threads[MAX_THREADS] ; + int offset = 0 ; + for (int i = 0 ; i < __nt ; i++) { + if (chunks[i] > 0) { + threads[i] = thread(Avgpool_thread, + i, chunks[i], filter_size, m_bits, e_bits, + Row_s+offset, Row_z+offset, Row_m+offset, Row_e+offset, + pooled_s+offset, pooled_z+offset, pooled_m+offset, pooled_e+offset + ) ; + offset += chunks[i] ; + } + } + + for (int i = 0 ; i < __nt ; i++) + if (chunks[i] > 0) + threads[i].join() ; + + for (uint32_t n = 0, outarr_k=0; n < N; n++) { + for (uint32_t c = 0; c < C; c++) { + for (uint32_t h = 0; h < H; h++) { + for (uint32_t w = 0; w < W; w++, outarr_k++) { + outArr[n][h][w][c].s[0] = pooled_s[outarr_k] ; + outArr[n][h][w][c].z[0] = pooled_z[outarr_k] ; + outArr[n][h][w][c].m[0] = pooled_m[outarr_k] ; + outArr[n][h][w][c].e[0] = pooled_e[outarr_k] ; + } + } + } + } + + for (int i = 0 ; i < size ; i++) { + delete[] Row_s[i] ; + delete[] Row_z[i] ; + delete[] Row_m[i] ; + delete[] Row_e[i] ; + } + + delete[] pooled_s ; delete[] Row_s ; + delete[] pooled_z ; delete[] Row_z ; + delete[] pooled_m ; delete[] Row_m ; + delete[] pooled_e ; delete[] Row_e ; } \ No newline at end of file