# Copyright (C) 2020 Arm Limited or its affiliates. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the License); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Description:
# Contains SoftMax
import numpy as np

from . import scaling
from .data_type import DataType
from .operation import Operation
from .tensor import create_const_tensor
from .tensor import create_reshape_tensor
from .tensor import Tensor
from .tensor import TensorPurpose


class SoftMax:
    # Turn off black formatting for the LUT tables to keep them compact
    # fmt: off

    EXP_LUT_U8 = [
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
        0x00000291, 0x000006fa, 0x000012f6, 0x0000338b, 0x00008c1b, 0x00017cd8, 0x00040b3d, 0x000afe11,
        0x001de16c, 0x00513949, 0x00dcca03, 0x02582ac2, 0x065f6c52, 0x1152aaf6, 0x2f16ad4c, 0x7fffffff
    ]

    EXP_LUT_I8 = [
        0x000011c9, 0x000012b8, 0x000013b4, 0x000014bd, 0x000015d4, 0x000016fa, 0x0000182f, 0x00001975,
        0x00001acb, 0x00001c34, 0x00001daf, 0x00001f3f, 0x000020e3, 0x0000229e, 0x00002470, 0x0000265a,
        0x0000285e, 0x00002a7d, 0x00002cb9, 0x00002f13, 0x0000318c, 0x00003427, 0x000036e5, 0x000039c8,
        0x00003cd1, 0x00004004, 0x00004361, 0x000046ec, 0x00004aa6, 0x00004e93, 0x000052b4, 0x0000570d,
        0x00005ba1, 0x00006072, 0x00006583, 0x00006ada, 0x00007077, 0x00007661, 0x00007c9a, 0x00008327,
        0x00008a0c, 0x0000914d, 0x000098f1, 0x0000a0fb, 0x0000a971, 0x0000b259, 0x0000bbb9, 0x0000c597,
        0x0000cffa, 0x0000dae9, 0x0000e66b, 0x0000f288, 0x0000ff48, 0x00010cb3, 0x00011ad3, 0x000129b1,
        0x00013957, 0x000149d0, 0x00015b26, 0x00016d65, 0x0001809b, 0x000194d2, 0x0001aa1a, 0x0001c080,
        0x0001d814, 0x0001f0e4, 0x00020b03, 0x00022681, 0x00024371, 0x000261e7, 0x000281f7, 0x0002a3b5,
        0x0002c73b, 0x0002ec9e, 0x000313f8, 0x00033d64, 0x000368fd, 0x000396e0, 0x0003c72e, 0x0003fa05,
        0x00042f89, 0x000467dd, 0x0004a326, 0x0004e18e, 0x0005233d, 0x00056860, 0x0005b126, 0x0005fdbf,
        0x00064e5f, 0x0006a33b, 0x0006fc8e, 0x00075a93, 0x0007bd89, 0x000825b3, 0x00089356, 0x000906bd,
        0x00098034, 0x000a000f, 0x000a86a2, 0x000b1447, 0x000ba95f, 0x000c464d, 0x000ceb7c, 0x000d9959,
        0x000e505a, 0x000f10f9, 0x000fdbb8, 0x0010b120, 0x001191c0, 0x00127e2f, 0x0013770b, 0x00147cfc,
        0x001590b2, 0x0016b2e6, 0x0017e45c, 0x001925e1, 0x001a784c, 0x001bdc81, 0x001d536f, 0x001ede14,
        0x00207d76, 0x002232af, 0x0023fee3, 0x0025e348, 0x0027e125, 0x0029f9ce, 0x002c2ead, 0x002e813e,
        0x0030f30f, 0x003385c7, 0x00363b1e, 0x003914e9, 0x003c150f, 0x003f3d97, 0x004290a0, 0x00461065,
        0x0049bf40, 0x004d9fac, 0x0051b444, 0x0055ffc2, 0x005a850e, 0x005f472f, 0x00644959, 0x00698eea,
        0x006f1b6b, 0x0074f298, 0x007b185e, 0x008190dd, 0x00886073, 0x008f8bad, 0x00971761, 0x009f08a0,
        0x00a764c0, 0x00b03163, 0x00b9746c, 0x00c3341a, 0x00cd76f8, 0x00d843eb, 0x00e3a23a, 0x00ef9981,
        0x00fc31d0, 0x0109739d, 0x011767cf, 0x012617cd, 0x01358d6e, 0x0145d319, 0x0156f3be, 0x0168fadc,
        0x017bf49d, 0x018fedb3, 0x01a4f391, 0x01bb1457, 0x01d25ede, 0x01eae2e1, 0x0204b0c5, 0x021fd9e9,
        0x023c708e, 0x025a87f5, 0x027a343a, 0x029b8ac1, 0x02bea1ea, 0x02e39148, 0x030a71be, 0x03335d49,
        0x035e6f88, 0x038bc564, 0x03bb7d53, 0x03edb776, 0x0422956d, 0x045a3add, 0x0494cd23, 0x04d27398,
        0x051357c1, 0x0557a511, 0x059f8990, 0x05eb3585, 0x063adbc4, 0x068eb1f7, 0x06e6f042, 0x0743d212,
        0x07a595d0, 0x080c7d1f, 0x0878cd5d, 0x08eacf11, 0x0962cefe, 0x09e11dc0, 0x0a661028, 0x0af1ffdf,
        0x0b854a8e, 0x0c205363, 0x0cc38284, 0x0d6f4577, 0x0e241032, 0x0ee25ba2, 0x0faaa7e6, 0x107d7b92,
        0x115b64b1, 0x1244f774, 0x133ad1b8, 0x143d9876, 0x154df988, 0x166cac69, 0x179a70c9, 0x18d81250,
        0x1a266643, 0x1b864d38, 0x1cf8b430, 0x1e7e9307, 0x2018f0a9, 0x21c8e098, 0x238f850c, 0x256e1033,
        0x2765c273, 0x2977ef40, 0x2ba5faa9, 0x2df15b73, 0x305b9d6b, 0x32e65e8a, 0x3593552c, 0x38644d67,
        0x3b5b2b66, 0x3e79ee87, 0x41c2adcb, 0x45379f4e, 0x48db158a, 0x4caf81e6, 0x50b7797f, 0x54f5af16,
        0x596cfe2f, 0x5e2066d0, 0x631310c8, 0x684852d8, 0x6dc3a909, 0x7388c421, 0x799b84b7, 0x7fffffff,
    ]

    EXP_LUT = [
        0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
        0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
        0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
        0x00000002, 0x00000002, 0x00010002, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003,
        0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003,
        0x00000003, 0x00000003, 0x00000003, 0x00010003, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
        0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
        0x00010004, 0x00000005, 0x00000005, 0x00000005, 0x00000005, 0x00000005, 0x00000005, 0x00000005,
        0x00000005, 0x00000005, 0x00010005, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006,
        0x00000006, 0x00000006, 0x00010006, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007,
        0x00000007, 0x00000007, 0x00010007, 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008,
        0x00010008, 0x00000009, 0x00000009, 0x00000009, 0x00000009, 0x00000009, 0x00010009, 0x0000000a,
        0x0000000a, 0x0000000a, 0x0000000a, 0x0001000a, 0x0000000b, 0x0000000b, 0x0000000b, 0x0000000b,
        0x0001000b, 0x0000000c, 0x0000000c, 0x0000000c, 0x0001000c, 0x0000000d, 0x0000000d, 0x0000000d,
        0x0001000d, 0x0000000e, 0x0000000e, 0x0000000e, 0x0001000e, 0x0000000f, 0x0000000f, 0x0001000f,
        0x00000010, 0x00000010, 0x00010010, 0x00000011, 0x00000011, 0x00010011, 0x00000012, 0x00000012,
        0x00010012, 0x00000013, 0x00000013, 0x00010013, 0x00000014, 0x00010014, 0x00000015, 0x00000015,
        0x00010015, 0x00000016, 0x00010016, 0x00000017, 0x00010017, 0x00000018, 0x00010018, 0x00000019,
        0x00010019, 0x0000001a, 0x0001001a, 0x0000001b, 0x0001001b, 0x0000001c, 0x0001001c, 0x0000001d,
        0x0001001d, 0x0000001e, 0x0001001e, 0x0001001f, 0x00000020, 0x00010020, 0x00010021, 0x00000022,
        0x00010022, 0x00010023, 0x00000024, 0x00010024, 0x00000025, 0x00010025, 0x00010026, 0x00010027,
        0x00000028, 0x00020028, 0x0000002a, 0x0001002a, 0x0001002b, 0x0001002c, 0x0000002d, 0x0001002d,
        0x0001002e, 0x0001002f, 0x00010030, 0x00010031, 0x00010032, 0x00010033, 0x00010034, 0x00010035,
        0x00010036, 0x00010037, 0x00010038, 0x00020039, 0x0001003b, 0x0000003c, 0x0002003c, 0x0001003e,
        0x0002003f, 0x00000041, 0x00020041, 0x00010043, 0x00010044, 0x00020045, 0x00020047, 0x00010049,
        0x0001004a, 0x0002004b, 0x0001004d, 0x0002004e, 0x00010050, 0x00020051, 0x00020053, 0x00010055,
        0x00020056, 0x00020058, 0x0002005a, 0x0001005c, 0x0002005d, 0x0002005f, 0x00020061, 0x00020063,
        0x00020065, 0x00020067, 0x00020069, 0x0002006b, 0x0003006d, 0x00020070, 0x00020072, 0x00020074,
        0x00030076, 0x00020079, 0x0003007b, 0x0002007e, 0x00030080, 0x00020083, 0x00020085, 0x00040087,
        0x0002008b, 0x0003008d, 0x00030090, 0x00020093, 0x00030095, 0x00030098, 0x0003009b, 0x0004009e,
        0x000300a2, 0x000300a5, 0x000300a8, 0x000300ab, 0x000400ae, 0x000300b2, 0x000400b5, 0x000400b9,
        0x000300bd, 0x000400c0, 0x000400c4, 0x000400c8, 0x000400cc, 0x000400d0, 0x000500d4, 0x000400d9,
        0x000400dd, 0x000500e1, 0x000400e6, 0x000500ea, 0x000400ef, 0x000500f3, 0x000500f8, 0x000500fd,
        0x00050102, 0x00050107, 0x0005010c, 0x00060111, 0x00050117, 0x0006011c, 0x00060122, 0x00060128,
        0x0006012e, 0x00060134, 0x0006013a, 0x00070140, 0x00060147, 0x0007014d, 0x00060154, 0x0007015a,
        0x00070161, 0x00060168, 0x0008016e, 0x00070176, 0x0008017d, 0x00080185, 0x0007018d, 0x00090194,
        0x0008019d, 0x000801a5, 0x000801ad, 0x000901b5, 0x000901be, 0x000901c7, 0x000901d0, 0x000901d9,
        0x000a01e2, 0x000901ec, 0x000a01f5, 0x000b01ff, 0x000a020a, 0x000b0214, 0x000a021f, 0x000b0229,
        0x000b0234, 0x000b023f, 0x000c024a, 0x000c0256, 0x000c0262, 0x000c026e, 0x000c027a, 0x000d0286,
        0x000d0293, 0x000d02a0, 0x000e02ad, 0x000e02bb, 0x000e02c9, 0x000e02d7, 0x000f02e5, 0x000f02f4,
        0x000f0303, 0x000f0312, 0x00100321, 0x00100331, 0x00110341, 0x00100352, 0x00120362, 0x00110374,
        0x00120385, 0x00120397, 0x001203a9, 0x001303bb, 0x001303ce, 0x001403e1, 0x001403f5, 0x00140409,
        0x0015041d, 0x00150432, 0x00160447, 0x0016045d, 0x00160473, 0x00170489, 0x001704a0, 0x001904b7,
        0x001804d0, 0x001904e8, 0x00190501, 0x001a051a, 0x001a0534, 0x001b054e, 0x001b0569, 0x001c0584,
        0x001c05a0, 0x001d05bc, 0x001e05d9, 0x001e05f7, 0x001e0615, 0x00200633, 0x00200653, 0x00200673,
        0x00210693, 0x002206b4, 0x002306d6, 0x002306f9, 0x0024071c, 0x00240740, 0x00260764, 0x0026078a,
        0x002607b0, 0x002807d6, 0x002907fe, 0x00290827, 0x002a0850, 0x002a087a, 0x002c08a4, 0x002c08d0,
        0x002e08fc, 0x002e092a, 0x002f0958, 0x00310987, 0x003109b8, 0x003209e9, 0x00330a1b, 0x00340a4e,
        0x00350a82, 0x00350ab7, 0x00380aec, 0x00380b24, 0x003a0b5c, 0x003a0b96, 0x003c0bd0, 0x003d0c0c,
        0x003e0c49, 0x003f0c87, 0x00400cc6, 0x00420d06, 0x00430d48, 0x00440d8b, 0x00460dcf, 0x00480e15,
        0x00480e5d, 0x00490ea5, 0x004c0eee, 0x004d0f3a, 0x004e0f87, 0x00500fd5, 0x00511025, 0x00531076,
        0x005610c9, 0x0056111f, 0x00581175, 0x005a11cd, 0x005c1227, 0x005e1283, 0x005e12e1, 0x0061133f,
        0x006413a0, 0x00651404, 0x00671469, 0x006914d0, 0x006c1539, 0x006c15a5, 0x00701611, 0x00721681,
        0x007416f3, 0x00761767, 0x007917dd, 0x007a1856, 0x007d18d0, 0x0080194d, 0x008319cd, 0x00841a50,
        0x00881ad4, 0x00891b5c, 0x008d1be5, 0x00911c72, 0x00911d03, 0x00961d94, 0x00981e2a, 0x009c1ec2,
        0x009e1f5e, 0x00a21ffc, 0x00a4209e, 0x00a92142, 0x00ab21eb, 0x00ae2296, 0x00b22344, 0x00b523f6,
        0x00b924ab, 0x00be2564, 0x00c02622, 0x00c526e2, 0x00c827a7, 0x00cc286f, 0x00d0293b, 0x00d52a0b,
        0x00d72ae0, 0x00dd2bb7, 0x00e12c94, 0x00e62d75, 0x00eb2e5b, 0x00ef2f46, 0x00f23035, 0x00f83127,
        0x00fe321f, 0x0101331d, 0x0108341e, 0x010c3526, 0x01123632, 0x01173744, 0x011c385b, 0x01233977,
        0x01273a9a, 0x012e3bc1, 0x01343cef, 0x013a3e23, 0x01403f5d, 0x0146409d, 0x014c41e3, 0x0154432f,
        0x01594483, 0x016145dc, 0x0168473d, 0x016f48a5, 0x01764a14, 0x017d4b8a, 0x01854d07, 0x018d4e8c,
        0x01945019, 0x019d51ad, 0x01a4534a, 0x01ad54ee, 0x01b5569b, 0x01be5850, 0x01c75a0e, 0x01d05bd5,
        0x01d85da5, 0x01e35f7d, 0x01eb6160, 0x01f6634b, 0x01ff6541, 0x02096740, 0x02146949, 0x021e6b5d,
        0x02296d7b, 0x02336fa4, 0x023f71d7, 0x024a7416, 0x02567660, 0x026278b6, 0x026d7b18, 0x027a7d85,
    ]

    ONE_OVER_ONE_PLUS_X_LUT = [
        0xffc17fff, 0xffc07fc0, 0xffc27f80, 0xffc07f42, 0xffc17f02, 0xffc17ec3, 0xffc27e84, 0xffc27e46,
        0xffc27e08, 0xffc37dca, 0xffc27d8d, 0xffc37d4f, 0xffc37d12, 0xffc37cd5, 0xffc37c98, 0xffc47c5b,
        0xffc47c1f, 0xffc47be3, 0xffc57ba7, 0xffc57b6c, 0xffc37b31, 0xffc67af4, 0xffc57aba, 0xffc67a7f,
        0xffc57a45, 0xffc67a0a, 0xffc779d0, 0xffc67997, 0xffc6795d, 0xffc77923, 0xffc778ea, 0xffc778b1,
        0xffc87878, 0xffc77840, 0xffc87807, 0xffc877cf, 0xffc97797, 0xffc87760, 0xffc97728, 0xffc976f1,
        0xffc976ba, 0xffc87683, 0xffca764b, 0xffca7615, 0xffca75df, 0xffca75a9, 0xffca7573, 0xffcb753d,
        0xffca7508, 0xffcb74d2, 0xffcb749d, 0xffca7468, 0xffcc7432, 0xffcc73fe, 0xffcb73ca, 0xffcc7395,
        0xffcd7361, 0xffcc732e, 0xffcc72fa, 0xffcd72c6, 0xffcd7293, 0xffcd7260, 0xffcc722d, 0xffce71f9,
        0xffcd71c7, 0xffce7194, 0xffce7162, 0xffce7130, 0xffcf70fe, 0xffce70cd, 0xffce709b, 0xffcf7069,
        0xffcf7038, 0xffcf7007, 0xffcf6fd6, 0xffcf6fa5, 0xffd06f74, 0xffd06f44, 0xffd06f14, 0xffd06ee4,
        0xffd06eb4, 0xffd06e84, 0xffd16e54, 0xffd16e25, 0xffd16df6, 0xffd16dc7, 0xffd06d98, 0xffd26d68,
        0xffd16d3a, 0xffd26d0b, 0xffd26cdd, 0xffd26caf, 0xffd26c81, 0xffd26c53, 0xffd36c25, 0xffd26bf8,
        0xffd36bca, 0xffd36b9d, 0xffd36b70, 0xffd26b43, 0xffd46b15, 0xffd36ae9, 0xffd46abc, 0xffd46a90,
        0xffd46a64, 0xffd46a38, 0xffd46a0c, 0xffd469e0, 0xffd469b4, 0xffd56988, 0xffd5695d, 0xffd56932,
        0xffd56907, 0xffd568dc, 0xffd568b1, 0xffd56886, 0xffd6685b, 0xffd56831, 0xffd66806, 0xffd667dc,
        0xffd667b2, 0xffd76788, 0xffd6675f, 0xffd76735, 0xffd6670c, 0xffd766e2, 0xffd666b9, 0xffd7668f,
        0xffd86666, 0xffd6663e, 0xffd86614, 0xffd765ec, 0xffd865c3, 0xffd8659b, 0xffd86573, 0xffd8654b,
        0xffd86523, 0xffd864fb, 0xffd964d3, 0xffd864ac, 0xffd96484, 0xffd8645d, 0xffd96435, 0xffd9640e,
        0xffd963e7, 0xffd963c0, 0xffd96399, 0xffda6372, 0xffd9634c, 0xffda6325, 0xffda62ff, 0xffda62d9,
        0xffda62b3, 0xffda628d, 0xffda6267, 0xffdb6241, 0xffda621c, 0xffdb61f6, 0xffda61d1, 0xffdc61ab,
        0xffd96187, 0xffdc6160, 0xffdb613c, 0xffdb6117, 0xffdb60f2, 0xffdc60cd, 0xffdc60a9, 0xffdb6085,
        0xffdc6060, 0xffdc603c, 0xffdc6018, 0xffdc5ff4, 0xffdc5fd0, 0xffdd5fac, 0xffdc5f89, 0xffdc5f65,
        0xffdd5f41, 0xffdd5f1e, 0xffdd5efb, 0xffdd5ed8, 0xffdd5eb5, 0xffdd5e92, 0xffdd5e6f, 0xffdd5e4c,
        0xffdd5e29, 0xffde5e06, 0xffde5de4, 0xffdd5dc2, 0xffde5d9f, 0xffde5d7d, 0xffde5d5b, 0xffde5d39,
        0xffdf5d17, 0xffde5cf6, 0xffde5cd4, 0xffdf5cb2, 0xffdf5c91, 0xffde5c70, 0xffdf5c4e, 0xffdf5c2d,
        0xffde5c0c, 0xffe05bea, 0xffdf5bca, 0xffdf5ba9, 0xffdf5b88, 0xffdf5b67, 0xffe05b46, 0xffe05b26,
        0xffdf5b06, 0xffe05ae5, 0xffe05ac5, 0xffe05aa5, 0xffe05a85, 0xffe05a65, 0xffe05a45, 0xffe15a25,
        0xffe05a06, 0xffe059e6, 0xffe159c6, 0xffe159a7, 0xffe05988, 0xffe15968, 0xffe15949, 0xffe1592a,
        0xffe1590b, 0xffe158ec, 0xffe258cd, 0xffe158af, 0xffe15890, 0xffe25871, 0xffe15853, 0xffe25834,
        0xffe25816, 0xffe257f8, 0xffe157da, 0xffe257bb, 0xffe3579d, 0xffe25780, 0xffe25762, 0xffe25744,
        0xffe35726, 0xffe25709, 0xffe256eb, 0xffe356cd, 0xffe356b0, 0xffe35693, 0xffe25676, 0xffe35658,
        0xffe3563b, 0xffe3561e, 0xffe35601, 0xffe355e4, 0xffe455c7, 0xffe355ab, 0xffe4558e, 0xffe35572,
        0xffe45555, 0xffe35539, 0xffe4551c, 0xffe45500, 0xffe454e4, 0xffe454c8, 0xffe454ac, 0xffe45490,
        0xffe45474, 0xffe55458, 0xffe4543d, 0xffe45421, 0xffe55405, 0xffe553ea, 0xffe453cf, 0xffe553b3,
        0xffe45398, 0xffe5537c, 0xffe55361, 0xffe55346, 0xffe5532b, 0xffe55310, 0xffe552f5, 0xffe552da,
        0xffe652bf, 0xffe552a5, 0xffe5528a, 0xffe6526f, 0xffe55255, 0xffe6523a, 0xffe65220, 0xffe55206,
        0xffe651eb, 0xffe651d1, 0xffe651b7, 0xffe6519d, 0xffe65183, 0xffe65169, 0xffe7514f, 0xffe65136,
        0xffe6511c, 0xffe75102, 0xffe650e9, 0xffe750cf, 0xffe650b6, 0xffe7509c, 0xffe75083, 0xffe6506a,
        0xffe75050, 0xffe75037, 0xffe7501e, 0xffe75005, 0xffe74fec, 0xffe74fd3, 0xffe74fba, 0xffe74fa1,
        0xffe84f88, 0xffe74f70, 0xffe84f57, 0xffe74f3f, 0xffe84f26, 0xffe74f0e, 0xffe84ef5, 0xffe84edd,
        0xffe84ec5, 0xffe84ead, 0xffe74e95, 0xffe84e7c, 0xffe84e64, 0xffe94e4c, 0xffe84e35, 0xffe84e1d,
        0xffe84e05, 0xffe94ded, 0xffe84dd6, 0xffe84dbe, 0xffe94da6, 0xffe94d8f, 0xffe84d78, 0xffe84d60,
        0xffea4d48, 0xffe84d32, 0xffe94d1a, 0xffe94d03, 0xffe84cec, 0xffe94cd4, 0xffe94cbd, 0xffea4ca6,
        0xffe94c90, 0xffe84c79, 0xffea4c61, 0xffe94c4b, 0xffe94c34, 0xffea4c1d, 0xffe94c07, 0xffea4bf0,
        0xffe94bda, 0xffea4bc3, 0xffea4bad, 0xffe94b97, 0xffea4b80, 0xffea4b6a, 0xffea4b54, 0xffea4b3e,
        0xffea4b28, 0xffea4b12, 0xffea4afc, 0xffea4ae6, 0xffea4ad0, 0xffeb4aba, 0xffea4aa5, 0xffea4a8f,
        0xffeb4a79, 0xffea4a64, 0xffea4a4e, 0xffeb4a38, 0xffeb4a23, 0xffea4a0e, 0xffeb49f8, 0xffea49e3,
        0xffeb49cd, 0xffeb49b8, 0xffeb49a3, 0xffeb498e, 0xffea4979, 0xffeb4963, 0xffeb494e, 0xffec4939,
        0xffeb4925, 0xffea4910, 0xffec48fa, 0xffeb48e6, 0xffeb48d1, 0xffec48bc, 0xffeb48a8, 0xffec4893,
        0xffeb487f, 0xffec486a, 0xffeb4856, 0xffec4841, 0xffec482d, 0xffeb4819, 0xffec4804, 0xffec47f0,
        0xffec47dc, 0xffec47c8, 0xffec47b4, 0xffec47a0, 0xffec478c, 0xffec4778, 0xffec4764, 0xffec4750,
        0xffec473c, 0xffed4728, 0xffec4715, 0xffec4701, 0xffed46ed, 0xffec46da, 0xffed46c6, 0xffec46b3,
        0xffec469f, 0xffed468b, 0xffed4678, 0xffec4665, 0xffed4651, 0xffed463e, 0xffed462b, 0xffec4618,
        0xffed4604, 0xffed45f1, 0xffed45de, 0xffed45cb, 0xffed45b8, 0xffed45a5, 0xffed4592, 0xffed457f,
        0xffee456c, 0xffed455a, 0xffed4547, 0xffed4534, 0xffee4521, 0xffed450f, 0xffed44fc, 0xffee44e9,
        0xffed44d7, 0xffee44c4, 0xffee44b2, 0xffed44a0, 0xffee448d, 0xffee447b, 0xffed4469, 0xffee4456,
        0xffee4444, 0xffee4432, 0xffee4420, 0xffee440e, 0xffee43fc, 0xffee43ea, 0xffee43d8, 0xffee43c6,
        0xffee43b4, 0xffee43a2, 0xffee4390, 0xffef437e, 0xffee436d, 0xffee435b, 0xffef4349, 0xffee4338,
        0xffee4326, 0xffef4314, 0xffee4303, 0xffef42f1, 0xffee42e0, 0xffef42ce, 0xffee42bd, 0xffef42ab,
        0xffef429a, 0xffee4289, 0xfff04277, 0xffee4267, 0xffef4255, 0xffef4244, 0xffef4233, 0xffef4222,
        0xffee4211, 0xffef41ff, 0xfff041ee, 0xffef41de, 0xffef41cd, 0xffee41bc, 0xfff041aa, 0xffef419a,
        0xffef4189, 0xffef4178, 0xfff04167, 0xffef4157, 0xffef4146, 0xfff04135, 0xffef4125, 0xfff04114,
        0xffef4104, 0xfff040f3, 0xffef40e3, 0xfff040d2, 0xfff040c2, 0xffef40b2, 0xfff040a1, 0xfff04091,
        0xfff04081, 0xffef4071, 0xfff04060, 0xfff04050, 0xfff04040, 0xfff04030, 0xfff04020, 0xfff04010
    ]
    # fmt: on

    def __init__(self, op):
        self.op = op

    def generate_exp_table(self, beta, input_scale):
        # TODO: Generate the exp table using the same math as the reference
        return self.EXP_LUT_U8 if input_scale == 1.0 else self.EXP_LUT_I8

    def get_graph(self):
        ifm = self.op.inputs[0]
        ofm = self.op.outputs[0]

        if ifm.dtype in (DataType.uint8, DataType.int8) and ofm.dtype == ifm.dtype:
            return self.get_graph_8bit(ifm, ofm)
        elif ifm.dtype == DataType.int16 and ofm.dtype == DataType.int16:
            return self.get_graph_int16(ifm, ofm)
        else:
            self.op.run_on_npu = False
            return self.op

    def get_graph_8bit(self, ifm, ofm):
        exp_lut = self.generate_exp_table(self.op.attrs.get("beta", 1.0), ifm.quantization.scale_f32)
        ifm = create_reshape_tensor(ifm, ifm.get_full_shape())
        ofm = create_reshape_tensor(ofm, ofm.get_full_shape(), False)
        no_scale_quant = ifm.quantization.clone()
        no_scale_quant.scale_f32 = None
        no_scale_quant.zero_point = 0
        one_scale_quant = ifm.quantization.clone()
        one_scale_quant.scale_f32 = 1.0
        one_scale_quant.zero_point = 0
        ifm.quantization.zero_point = 0

        # PASS 0 - Depthwise Maxpool
        maxpool_op = self.op.clone("_maxpool0")
        maxpool_op.type = "MaxPool"
        maxpool_h = ifm.shape[1] * ifm.shape[2]
        maxpool_w = ifm.shape[3]
        maxpool_ifm_shape = [1, maxpool_h, maxpool_w, 1]
        maxpool_op.attrs["padding"] = b"VALID"
        maxpool_op.attrs["stride_w"] = 1
        maxpool_op.attrs["stride_h"] = 1
        maxpool_op.attrs["filter_width"] = maxpool_w
        maxpool_op.attrs["filter_height"] = 1
        maxpool_op.attrs["strides"] = [1, maxpool_op.attrs["stride_h"], maxpool_op.attrs["stride_w"], 1]
        maxpool_op.attrs["ksize"] = [1, maxpool_op.attrs["filter_height"], maxpool_op.attrs["filter_width"], 1]
        maxpool_op.inputs = [create_reshape_tensor(ifm, maxpool_ifm_shape)]
        ifm_max = Tensor([1, maxpool_h, 1, 1], ifm.dtype, maxpool_op.name + "_0")
        ifm_max.quantization = no_scale_quant
        maxpool_op.set_output_tensor(ifm_max)

        # PASS 1 - Sub+LUT(exp)
        sub_op = Operation("SubAct", self.op.name + "_sub1")
        sub_op.add_input_tensor(ifm)
        sub_op.add_input_tensor(ifm_max)
        sub_op.set_activation_lut(
            create_const_tensor(
                sub_op.name + "_lut", [1, 1, 1, 256], DataType.int32, exp_lut, np.int32, TensorPurpose.LUT
            )
        )
        ifm_exp = Tensor(ifm.shape, DataType.int32, sub_op.name + "_0")
        ifm_exp.quantization = one_scale_quant.clone()
        ifm_exp.quantization.zero_point = 127
        ifm_exp.quantization.quant_min = -128
        ifm_exp.quantization.quant_max = 127
        sub_op.set_output_tensor(ifm_exp)

        # PASS 2 - SHR
        shr2_op = Operation("SHR", self.op.name + "_shr2")
        shr2_op.add_input_tensor(ifm_exp)
        shr2_op.add_input_tensor(
            create_const_tensor(
                shr2_op.name + "_const", [1, 1, 1, 1], DataType.int32, [12], np.int32, quantization=no_scale_quant
            ),
        )
        rescaled_exp = Tensor(ifm.shape, ifm_exp.dtype, shr2_op.name + "_0")
        rescaled_exp.quantization = no_scale_quant
        shr2_op.set_output_tensor(rescaled_exp)

        # PASS 3 - Reduce sum
        reduce_sum_op = Operation("ReduceSum", self.op.name + "_reduce_sum3")
        reduce_sum_op.attrs["padding"] = b"VALID"
        reduce_sum_op.attrs["stride_w"] = 1
        reduce_sum_op.attrs["stride_h"] = 1
        reduce_sum_op.attrs["filter_width"] = 1
        reduce_sum_op.attrs["filter_height"] = 1
        reduce_sum_op.attrs["strides"] = [1, reduce_sum_op.attrs["stride_h"], reduce_sum_op.attrs["stride_w"], 1]
        reduce_sum_op.attrs["ksize"] = [1, reduce_sum_op.attrs["filter_height"], reduce_sum_op.attrs["filter_width"], 1]
        reduce_sum_op.add_input_tensor(rescaled_exp)

        reduce_sum_shape = [1, rescaled_exp.shape[1], rescaled_exp.shape[2], 1]
        sum_of_exp = Tensor(reduce_sum_shape, DataType.int32, reduce_sum_op.name + "_0")
        sum_of_exp.quantization = no_scale_quant
        reduce_sum_op.set_output_tensor(sum_of_exp)

        # PASS 4 - CLZ
        clz_op = Operation("CLZ", self.op.name + "_clz4")
        clz_op.add_input_tensor(sum_of_exp)
        headroom_plus_one = Tensor(reduce_sum_shape, DataType.int32, clz_op.name + "_0")
        headroom_plus_one.quantization = no_scale_quant
        clz_op.set_output_tensor(headroom_plus_one)

        # PASS 5 - Sub
        sub5_op = Operation("SubAct", self.op.name + "_sub5")
        sub5_op.add_input_tensor(
            create_const_tensor(
                "headroom_offset_const", [1, 1, 1, 1], DataType.int32, [12 + 31 - 8], np.int32, quantization=no_scale_quant
            ),
        )
        sub5_op.add_input_tensor(headroom_plus_one)
        right_shift = Tensor(reduce_sum_shape, DataType.int32, sub5_op.name + "_0")
        right_shift.quantization = no_scale_quant
        sub5_op.set_output_tensor(right_shift)

        # PASS 6 - Sub
        one = create_const_tensor(
            "one_const", [1, 1, 1, 1], DataType.int32, [1], np.int32, quantization=no_scale_quant
        )
        sub6_op = Operation("SubAct", self.op.name + "_sub6")
        sub6_op.add_input_tensor(headroom_plus_one)
        sub6_op.add_input_tensor(one)
        headroom = Tensor(reduce_sum_shape, DataType.int32, sub6_op.name + "_0")
        headroom.quantization = no_scale_quant
        sub6_op.set_output_tensor(headroom)

        # PASS 7 - SHL
        shl7_op = Operation("SHL", self.op.name + "_shl7")
        shl7_op.add_input_tensor(sum_of_exp)
        shl7_op.add_input_tensor(headroom)
        shifted_sum = Tensor(reduce_sum_shape, DataType.int32, shl7_op.name + "_0")
        shifted_sum.quantization = no_scale_quant
        shl7_op.set_output_tensor(shifted_sum)

        # PASS 8 - Sub
        sub8_op = Operation("SubAct", self.op.name + "_sub8")
        sub8_op.add_input_tensor(shifted_sum)
        sub8_op.add_input_tensor(
            create_const_tensor(
                "shifted_one_const", [1, 1, 1, 1], DataType.int32, [1 << 30], np.int32, quantization=no_scale_quant
            ),
        )
        shifted_sum_minus_one = Tensor(reduce_sum_shape, DataType.int32, sub8_op.name + "_0")
        shifted_sum_minus_one.quantization = no_scale_quant
        sub8_op.set_output_tensor(shifted_sum_minus_one)

        # PASS 9 - SHL
        shl9_op = Operation("SHL", self.op.name + "_shl9")
        shl9_op.add_input_tensor(shifted_sum_minus_one)
        shl9_op.add_input_tensor(one)
        shifted_sum_minus_one = Tensor(reduce_sum_shape, DataType.int32, shl9_op.name + "_0")
        shifted_sum_minus_one.quantization = no_scale_quant
        shl9_op.set_output_tensor(shifted_sum_minus_one)

        # PASS 10 - Add
        add10_op = Operation("AddAct", self.op.name + "_add10")
        add10_op.add_input_tensor(
            create_const_tensor(
                "F0_one_const", [1, 1, 1, 1], DataType.int32, [(1 << 31) - 1], np.int32, quantization=no_scale_quant
            ),
        )
        add10_op.add_input_tensor(shifted_sum_minus_one)
        add10_op.attrs["rescale"] = [1, 1]
        half_denominator = Tensor(reduce_sum_shape, DataType.int32, add10_op.name + "_0")
        half_denominator.quantization = one_scale_quant
        add10_op.set_output_tensor(half_denominator)

        # PASS 11 - Multiply
        mul11_op = Operation("MulAct", self.op.name + "_mul11")
        mul11_op.add_input_tensor(half_denominator)
        mul11_op.add_input_tensor(
            create_const_tensor(
                "neg_32_over_17_const", [1, 1, 1, 1], DataType.int32, [-1010580540], np.int32, quantization=one_scale_quant
            ),
        )
        rescaled = Tensor(ifm_exp.shape, DataType.int32, mul11_op.name + "_0")
        rescaled.quantization = one_scale_quant.clone()
        rescaled.quantization.scale_f32 = 2.0
        mul11_op.set_output_tensor(rescaled)

        # PASS 12 - Add
        add12_op = Operation("AddAct", self.op.name + "_add12")
        add12_op.add_input_tensor(rescaled)
        add12_op.add_input_tensor(
            create_const_tensor(
                "48_over_17_const", [1, 1, 1, 1], DataType.int32, [1515870810], np.int32, quantization=no_scale_quant
            ),
        )
        rescale_w_offset = Tensor(reduce_sum_shape, DataType.int32, add12_op.name + "_0")
        rescale_w_offset.quantization = one_scale_quant
        add12_op.set_output_tensor(rescale_w_offset)

        nr_x = rescale_w_offset
        F2_one = create_const_tensor(
            "F2_one_const", [1, 1, 1, 1], DataType.int32, [(1 << 29)], np.int32, quantization=no_scale_quant
        )
        two = create_const_tensor(
            "two_const", [1, 1, 1, 1], DataType.int32, [2], np.int32, quantization=no_scale_quant
        )
        for i in range(3):
            # PASS 13, 18, 23 - MUL
            mul_op = Operation("MulAct", self.op.name + "_mul%d" % (13 + i * 5))
            mul_op.add_input_tensor(nr_x)
            mul_op.add_input_tensor(half_denominator)
            half_denominator_times_x = Tensor(ifm_exp.shape, DataType.int32, mul_op.name + "_0")
            half_denominator_times_x.quantization = one_scale_quant.clone()
            half_denominator_times_x.quantization.scale_f32 = 2.0
            mul_op.set_output_tensor(half_denominator_times_x)
            # PASS 14, 19, 24 - SUB
            sub_op = Operation("SubAct", self.op.name + "_sub%d" % (14 + i * 5))
            sub_op.add_input_tensor(F2_one)
            sub_op.add_input_tensor(half_denominator_times_x)
            one_minus_half_denominator_times_x = Tensor(reduce_sum_shape, DataType.int32, sub_op.name + "_0")
            one_minus_half_denominator_times_x.quantization = one_scale_quant
            sub_op.set_output_tensor(one_minus_half_denominator_times_x)
            # PASS 15, 20, 25 - MUL
            mul_op = Operation("MulAct", self.op.name + "_mul%d" %+ (15 + i * 5))
            mul_op.add_input_tensor(nr_x)
            mul_op.add_input_tensor(one_minus_half_denominator_times_x)
            to_rescale = Tensor(ifm_exp.shape, DataType.int32, mul_op.name + "_0")
            to_rescale.quantization = one_scale_quant.clone()
            to_rescale.quantization.scale_f32 = 2.0
            mul_op.set_output_tensor(to_rescale)
            # PASS 16, 21, 26 - SHL
            shl_op = Operation("SHL", self.op.name + "_shl%d" % (16 + i * 5))
            shl_op.add_input_tensor(to_rescale)
            shl_op.add_input_tensor(two)
            to_add = Tensor(reduce_sum_shape, DataType.int32, shl_op.name + "_0")
            to_add.quantization = no_scale_quant
            shl_op.set_output_tensor(to_add)
            # PASS 17, 22, 27 - ADD
            add_op = Operation("AddAct", self.op.name + "_add%d" % (17 + i * 5))
            add_op.add_input_tensor(nr_x)
            add_op.add_input_tensor(to_add)
            nr_x = Tensor(reduce_sum_shape, DataType.int32, add_op.name + "_0")
            nr_x.quantization = one_scale_quant
            add_op.set_output_tensor(nr_x)

        # PASS 28 - SHL
        shl28_op = Operation("SHL", self.op.name + "_shl28")
        shl28_op.add_input_tensor(nr_x)
        shl28_op.add_input_tensor(one)
        scale_factor = Tensor(reduce_sum_shape, DataType.int32, shl28_op.name + "_0")
        scale_factor.quantization = one_scale_quant
        shl28_op.set_output_tensor(scale_factor)

        # PASS 29 - Multiply
        mul_op = Operation("MulAct", self.op.name + "_mul29")
        mul_op.add_input_tensor(ifm_exp)
        mul_op.add_input_tensor(scale_factor)
        scaled_exp = Tensor(ifm_exp.shape, DataType.int32, mul_op.name + "_0")
        scaled_exp.quantization = one_scale_quant.clone()
        scaled_exp.quantization.scale_f32 = 2.0
        mul_op.set_output_tensor(scaled_exp)

        # PASS 30 - SHR
        shr30_op = Operation("SHR", self.op.name + "_shr30")
        shr30_op.add_input_tensor(scaled_exp)
        shr30_op.add_input_tensor(right_shift)
        shr30_op.set_output_tensor(ofm)

        return shr30_op

    def get_graph_int16(self, ifm, ofm):
        ifm = create_reshape_tensor(ifm, ifm.get_full_shape())
        ofm = create_reshape_tensor(ofm, ofm.get_full_shape(), False)
        no_scale_quant = ifm.quantization.clone()
        no_scale_quant.scale_f32 = None

        # PASS 0 - Depthwise Maxpool
        maxpool_op = self.op.clone("_maxpool0")
        maxpool_op.type = "MaxPool"
        maxpool_h = ifm.shape[1] * ifm.shape[2]
        maxpool_w = ifm.shape[3]
        maxpool_ifm_shape = [1, maxpool_h, maxpool_w, 1]
        maxpool_op.attrs["padding"] = b"VALID"
        maxpool_op.attrs["stride_w"] = 1
        maxpool_op.attrs["stride_h"] = 1
        maxpool_op.attrs["filter_width"] = maxpool_w
        maxpool_op.attrs["filter_height"] = 1
        maxpool_op.attrs["strides"] = [1, maxpool_op.attrs["stride_h"], maxpool_op.attrs["stride_w"], 1]
        maxpool_op.attrs["ksize"] = [1, maxpool_op.attrs["filter_height"], maxpool_op.attrs["filter_width"], 1]
        maxpool_op.inputs = [create_reshape_tensor(ifm, maxpool_ifm_shape)]
        maxpool_ofm = Tensor([1, maxpool_h, 1, 1], ifm.dtype, maxpool_op.name + "_0")
        maxpool_ofm.quantization = no_scale_quant
        maxpool_op.set_output_tensor(maxpool_ofm)

        # PASS 1 - Sub
        sub1_op = Operation("SubAct", self.op.name + "_sub1")
        sub1_op.add_input_tensor(ifm)
        sub1_op.add_input_tensor(create_reshape_tensor(maxpool_ofm, [1, ifm.shape[1], ifm.shape[2], 1]))
        sub1_ofm = Tensor(ifm.shape, DataType.int32, sub1_op.name + "_0")
        sub1_ofm.quantization = ifm.quantization.clone()
        sub1_op.set_output_tensor(sub1_ofm)

        # PASS 2 - Mul
        beta = self.op.attrs.get("beta", 1.0)
        mul2_out_range = 10.0 / 65535.0
        mul2_scale, _ = scaling.elementwise_mul_scale(sub1_ofm.quantization.scale_f32, beta, mul2_out_range)
        mul2_quant = ifm.quantization.clone()
        mul2_quant.scale_f32 = beta
        mul2_op = Operation("MulAct", self.op.name + "_mul2")
        mul2_op.add_input_tensor(sub1_ofm)
        mul2_op.add_input_tensor(
            create_const_tensor(
                mul2_op.name + "_const", [1, 1, 1, 1], DataType.int32, [mul2_scale], np.int32, quantization=mul2_quant
            ),
        )
        mul2_ofm = Tensor(ifm.shape, DataType.int32, mul2_op.name + "_0")
        mul2_ofm.quantization = ofm.quantization.clone()
        mul2_ofm.quantization.scale_f32 = mul2_out_range
        mul2_op.set_output_tensor(mul2_ofm)

        # PASS 3 - Add+LUT(exp)
        add_op = Operation("AddAct", self.op.name + "_add3")
        add_op.add_input_tensor(mul2_ofm)
        add_op.add_input_tensor(
            create_const_tensor(
                add_op.name + "_const", [1, 1, 1, 1], DataType.int32, [32767], np.int32, quantization=no_scale_quant
            ),
        )
        add_op.set_activation_lut(
            create_const_tensor(
                add_op.name + "_lut", [1, 1, 1, 512], DataType.int32, self.EXP_LUT, np.int32, TensorPurpose.LUT
            )
        )
        exp_ofm = Tensor(mul2_ofm.shape, DataType.int16, add_op.name + "_0")
        exp_ofm.quantization = mul2_ofm.quantization.clone()
        add_op.set_output_tensor(exp_ofm)

        # PASS 4 - Reduce sum
        reduce_sum_op = Operation("ReduceSum", self.op.name + "_reduce_sum4")
        reduce_sum_op.attrs["padding"] = b"VALID"
        reduce_sum_op.attrs["stride_w"] = 1
        reduce_sum_op.attrs["stride_h"] = 1
        reduce_sum_op.attrs["filter_width"] = 1
        reduce_sum_op.attrs["filter_height"] = 1
        reduce_sum_op.attrs["strides"] = [1, reduce_sum_op.attrs["stride_h"], reduce_sum_op.attrs["stride_w"], 1]
        reduce_sum_op.attrs["ksize"] = [1, reduce_sum_op.attrs["filter_height"], reduce_sum_op.attrs["filter_width"], 1]
        reduce_sum_op.add_input_tensor(exp_ofm)

        reduce_sum_shape = [1, exp_ofm.shape[1], exp_ofm.shape[2], 1]
        sum_of_exp = Tensor(reduce_sum_shape, DataType.int32, reduce_sum_op.name + "_0")
        sum_of_exp.quantization = no_scale_quant
        reduce_sum_op.set_output_tensor(sum_of_exp)

        # PASS 5 - CLZ
        clz_op = Operation("CLZ", self.op.name + "_clz5")
        clz_op.add_input_tensor(sum_of_exp)
        headroom_plus_one = Tensor(reduce_sum_shape, DataType.int32, clz_op.name + "_0")
        headroom_plus_one.quantization = no_scale_quant
        clz_op.set_output_tensor(headroom_plus_one)

        # PASS 6 - Sub
        sub6_op = Operation("SubAct", self.op.name + "_sub6")
        sub6_op.add_input_tensor(
            create_const_tensor(
                sub6_op.name + "_const", [1, 1, 1, 1], DataType.int32, [31], np.int32, quantization=no_scale_quant
            ),
        )
        sub6_op.add_input_tensor(headroom_plus_one)
        reciprocal_right_shift = Tensor(reduce_sum_shape, DataType.int32, sub6_op.name + "_0")
        reciprocal_right_shift.quantization = no_scale_quant
        sub6_op.set_output_tensor(reciprocal_right_shift)

        # PASS 7 - SHL
        shl7_op = Operation("SHL", self.op.name + "_shl7")
        shl7_op.add_input_tensor(
            create_const_tensor(
                shl7_op.name + "_const", [1, 1, 1, 1], DataType.int32, [1], np.int32, quantization=no_scale_quant
            ),
        )
        shl7_op.add_input_tensor(reciprocal_right_shift)
        constant_one = Tensor(reduce_sum_shape, DataType.int32, shl7_op.name + "_0")
        constant_one.quantization = no_scale_quant
        shl7_op.set_output_tensor(constant_one)

        # PASS 8 - Sub
        sub8_op = Operation("SubAct", self.op.name + "_sub8")
        sub8_op.add_input_tensor(sum_of_exp)
        sub8_op.add_input_tensor(constant_one)
        sum_of_exps_minus_one = Tensor(reduce_sum_shape, DataType.int32, sub8_op.name + "_0")
        sum_of_exps_minus_one.quantization = no_scale_quant
        sub8_op.set_output_tensor(sum_of_exps_minus_one)

        # PASS 9 - SHL
        shl9_op = Operation("SHL", self.op.name + "_shl9")
        shl9_op.add_input_tensor(sum_of_exps_minus_one)
        shl9_op.add_input_tensor(headroom_plus_one)
        shifted_sum_minus_one = Tensor(reduce_sum_shape, DataType.int32, shl9_op.name + "_0")
        shifted_sum_minus_one.quantization = no_scale_quant
        shl9_op.set_output_tensor(shifted_sum_minus_one)

        # PASS 10 - SHR
        shr10_op = Operation("SHR", self.op.name + "_shr10")
        shr10_op.add_input_tensor(shifted_sum_minus_one)
        shr10_op.add_input_tensor(
            create_const_tensor(
                shr10_op.name + "_const", [1, 1, 1, 1], DataType.int32, [15], np.int32, quantization=no_scale_quant
            ),
        )
        shifted_sum_minus_one_16 = Tensor(reduce_sum_shape, DataType.int32, shr10_op.name + "_0")
        shifted_sum_minus_one_16.quantization = shifted_sum_minus_one.quantization.clone()
        shr10_op.set_output_tensor(shifted_sum_minus_one_16)

        # PASS 11 - Sub+LUT(one over one plus x)
        sub11_op = Operation("SubAct", self.op.name + "_sub11")
        sub11_op.add_input_tensor(shifted_sum_minus_one_16)
        sub11_op.add_input_tensor(
            create_const_tensor(
                sub11_op.name + "_const", [1, 1, 1, 1], DataType.int32, [32768], np.int32, quantization=no_scale_quant
            ),
        )
        sub11_op.set_activation_lut(
            create_const_tensor(
                sub11_op.name + "_lut",
                [1, 1, 1, 512],
                DataType.int32,
                self.ONE_OVER_ONE_PLUS_X_LUT,
                np.int32,
                TensorPurpose.LUT,
            )
        )
        reciprocal_scale = Tensor(reduce_sum_shape, DataType.int16, sub11_op.name + "_0")
        reciprocal_scale.quantization = no_scale_quant
        sub11_op.set_output_tensor(reciprocal_scale)

        # PASS 12 - Multiply
        mul_op = Operation("MulAct", self.op.name + "_mul12")
        mul_op.add_input_tensor(exp_ofm)
        mul_op.add_input_tensor(reciprocal_scale)
        mul_ofm = Tensor(exp_ofm.shape, DataType.int32, mul_op.name + "_0")
        mul_ofm.quantization = no_scale_quant
        mul_op.set_output_tensor(mul_ofm)

        # PASS 13 - SHR
        shr13_op = Operation("SHR", self.op.name + "_shr13")
        shr13_op.add_input_tensor(mul_ofm)
        shr13_op.add_input_tensor(reciprocal_right_shift)
        shr13_op.set_output_tensor(ofm)

        return shr13_op
