code: def perform(self, node, inputs, output_storage):
      coefficients = self.params_type.filter(self.get_params(node))
      x = inputs[0]
      y = output_storage[0]
      y[0] = (
          coefficients.a * (x**2)
          + coefficients.b * x
          + coefficients.c
      )
  
imports: import numpy
  import pytest
  import pytensor
  from pytensor import tensor
  from pytensor.graph.basic import Apply
  from pytensor.link.c.op import COp, ExternalCOp
  from pytensor.link.c.params_type import Params, ParamsType
  from pytensor.link.c.type import EnumList, Generic
  from pytensor.scalar import ScalarType
  from pytensor.tensor.type import TensorType, matrix
  from tests import unittest_tools
label_desc: Use image node_id 3 for calling the QuadraticOpFunc obj's underlying member method code with example usage: obj.perform(node, inputs, output_storage) without return types