How to convert readings from a DIY capacitive liquid level sensor to a level?
You can use a cubic in 1000/reading:
static const float coeff[4]= { 1.62914270704482, -7.9851592788591,  38.5529790479781, -23.7806334509969}; 

x =  1000.0/(float) reading; 

//  Evaluate using Horner's Rule 
result = coeff[0];
for (int i=1; i&lt;4; i++)  
    result = result*x + coeff[i]; 

I see a maximum error of +0.41/-0.58% of span at the given points and evaluation takes 1 divide and 3 multiplications so it should be pretty fast even on an 8-bit micro. Coefficients were optimized to minimize sum of squares of errors rather than worst absolute error.
Interested to see the comparison with your transcendental functions cos/log.