#include <ATen/native/ForeachUtils.h>
#include "op_plugin/OpApiInterface.h"
#include "op_plugin/utils/op_api_common.h"
#include "torch_npu/csrc/framework/utils/UtilForOpAdapter.h"
namespace op_api {
using npu_preparation = at_npu::native::OpPreparation;
std::vector<at::Tensor> _foreach_addcmul(const at::TensorList input,
const at::TensorList tensors1,
const at::TensorList tensors2,
at::ArrayRef<at::Scalar> scalars)
{
at::native::check_foreach_api_restrictions(input, tensors1, tensors2, scalars);
return at::native::foreach_tensor_addcmul_scalarlist_slow(input, tensors1, tensors2, scalars);
}
void _foreach_addcmul_(const at::TensorList input,
const at::TensorList tensors1,
const at::TensorList tensors2,
at::ArrayRef<at::Scalar> scalars)
{
at::native::check_foreach_api_restrictions(input, tensors1, tensors2, scalars);
return at::native::foreach_tensor_addcmul_scalarlist_slow_(input, tensors1, tensors2, scalars);
}
}