fn pq_inv(v: Float) -> Float {
    let vp = v.powf(1.0 / P);
    let pow = ((C1 - vp) / (C3 * vp - C2)).powf(1.0 / N);
    if pow.is_nan() {
        0.0
    } else {
        10_000.0 * pow
    }
}
// `v` may be negative, in which case return 0 instead of NaN
`v` may be negative, in which case return 0 instead of NaN
` v ` may be negative in which case return 0 instead of NaN
fn pq_inv(v: Float) -> Float {
    let vp = v.powf(1.0 / P);
    let pow = ((C1 - vp) / (C3 * vp - C2)).powf(1.0 / N);
    if pow.is_nan() {
        0.0
    } else {
        10_000.0 * pow
    }
}
fn pq_inv ( v : Float ) -> Float { let vp = v . powf ( 1.0 / P ) ; let pow = ( ( C1 - vp ) / ( C3 * vp - C2 ) ) . powf ( 1.0 / N ) ; if pow . is_nan ( ) { 0.0 } else { 10_000.0 * pow } }
`v` may be negative, in which case return 0 instead of NaN
` v ` may be negative in which case return 0 instead of NaN
v
Float
v
Float