#include "grad.h"
#include "../tensor.h"
#include <torch/torch.h>

namespace TensorOps {

Napi::Value GetGrad(Tensor* self, const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();

  // Check if gradient is defined
  if (!self->tensor.grad().defined()) {
    return env.Null();
  }

  // Return gradient as a new Tensor
  return Tensor::NewInstance(env, self->tensor.grad());
}

}  // namespace TensorOps
