more work on long double based calc