AI thinks simply defining a minor axis and doing nothing with it, is enough.
(it's not)
https://zzzcode.ai/code-generator?id=20c15714-f524-4538-bd94-a046ea5e647a# Ellipse Deformation Code
float numwaves = deform->parms[0] / deform->parms[1]; // Ellipse deformation
float semiMajorAxis = deform->parms[0]; // Ellipse deformation
float semiMinorAxis = deform->parms[1]; // Ellipse deformation
float exponent = deform->parms[2]; // Ellipse deformation
float *vert, *norm; // Ellipse deformation
// now deform vertexes // Ellipse deformation
for (j = 0; j < batchnumvertices; j++) // Ellipse deformation
{ // Ellipse deformation
vert = rsurface.batchvertex3f + 3*j; // Ellipse deformation
// deform vertex array to make water with elliptical waves // Ellipse deformation
VectorSubtract(center, vert, v); // Ellipse deformation
animpos = (semiMajorAxis - VectorLength(v)) / semiMajorAxis; // Ellipse deformation
animpos = max(0, animpos); // Ellipse deformation
if (animpos > 0) // Ellipse deformation
{ // Ellipse deformation
waveparms[0] = deform->waveparms[0]; // Ellipse deformation
waveparms[1] = deform->waveparms[1] * animpos; // Ellipse deformation
waveparms[2] = deform->waveparms[2] + pow(animpos, exponent) * numwaves; // Ellipse deformation
waveparms[3] = deform->waveparms[3]; // Ellipse deformation
scale = R_EvaluateQ3WaveFunc(deform->wavefunc, waveparms); // Ellipse deformation
norm = rsurface.batchnormal3f + 3*j; // Ellipse deformation
VectorMA(vert, scale, norm, vert); // Ellipse deformation
} // Ellipse deformation
}