So I am using an arduino in an application which requires finding the value of 6th degree polynomial at various positions where the coefficients of the polynomial ideally would have at least 8 decimal points of precision. I have actually found around doing this calculation on the arduino as my system includes a raspberry pi running a python script which it is communicating to anyway. So I can just do the calculation on the pi and send it back to the arduino.

However if if I didn't have the pi, can anyone suggest what the best way of representing a number and doing calculations, with higher degrees of precision than float can provide?

I'm assuming it would be possibly to define your own data type and write methods and functions to perform basic arithmetic operations upon it on an arduino, but is there possibly any libraries which already exist to do this? Or would I literally have to write something like this from scratch?