public double mainFunction(float alpha, float beta, float gamma, float deltaX, float deltaY, float deltaZ) { double sum = 0; var newPoints = TransformPoint.transformPoints(PointsA, alpha, beta, gamma, deltaX, deltaY, deltaZ); for (int i = 0; i < PointsA.Length; i++) { sum += Vector3.Distance(newPoints.ElementAt(i), PointsB[i]); } return(sum); }
public Variables CalculateGradient(float alpha, float beta, float gamma, float deltaX, float deltaY, float deltaZ) { Variables variables = new Variables(); var newPoints = TransformPoint.transformPoints(PointsA, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.alpha = (float)gradientAlongAlpha(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.beta = (float)gradientAlongBeta(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.gamma = (float)gradientAlongGamma(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.deltaX = (float)gradientAlongdeltaX(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.deltaY = (float)gradientAlongdeltaY(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); variables.deltaZ = (float)gradientAlongdeltaZ(newPoints, alpha, beta, gamma, deltaX, deltaY, deltaZ); return(variables); }