/*
Copyright (c) 2025-2025 Huawei Technologies Co., Ltd.

sysHAX-adapter is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
    http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
PURPOSE.
See the Mulan PSL v2 for more details.
Created: 2026-1-31
Desc: CPU inference merge silu operator
*/

#ifndef MERGE_SILU_H
#define MERGE_SILU_H

#include <string>
#include <vector>
#include <cmath>
#include <omp.h>
#include "tensor.h"
#include "cpu_utils.h"
#include "quantization/quantization_base.h"

namespace cpu_inference {

class MergeSilu {
public:
    MergeSilu(const std::vector<int>& numa_list);
    void forward(const WorkDivider& divider, float16_t* output, void* input1, void* input2,
        int token_cnt, int intermediate_size);
private:
    std::vector<int> numa_list;
};

};

#endif