You can make your function to return a float[]
array containing both values:
If the function returns a float[]
, we can’t return a String or anything else.
However, we can return a float[]
filled w/ 2 Float.NaN constants instead:
Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html#NaN
/**
* Bhaskara Akaria Quadratic (v1.0)
* GoToLoop (2020/Jan/02)
*
* https://Discourse.Processing.org/t/
* returning-multiple-values-and-also-a-problem-with-the-class/16821/2
*/
static final float[] discriminant(final float a, final float b, final float c) {
final float d = b*b - 4*a*c;
if (d < 0) return new float[] { Float.NaN, Float.NaN };
final float sqrDelta = sqrt(d), a2 = 2*a;
final float x1 = ( -b + sqrDelta) / a2;
if (d == 0) return new float[] { x1, x1 };
final float x2 = ( -b - sqrDelta) / a2;
return new float[] { x1, x2 };
}