- increase test coverage.
   - test Encrypted+non-encrypted cases
   - test all the operator x= cases.
   - test all string combinations
- Add missing math.h functions (see SHEMath.cpp).
   - //SHEFp nan(const char *) { return a; }
- Add rounding controlled by fp rounding preferences
- Performance improvements
   - Improve FP performance by switching from offset to native exp, and
     tracking nan and inf status with separate bools.
   - add intermediate tables to trig functions using the same method we used
     to improve log performance
   - better initial value for newton's methond for sqrt and cbrt.
   - replace simpson's integrals with better transcendentals (erf, erfc,
     tgamma, lgamma, j1, jn, y1, yn).
   - replace taylor polynomials with Chebychev polynomials.
   - create non-normalized versions of addition and multiplication for use
     in SHEMath.h, then normalize at the end.
   - handle more unencrypted length/pos cases in SHEString.cpp rather than
     punting and encrypting those length/pos values.
   - can we speed up udiv with parallel operations?
- Create detailed documentation on each function
- Complete the GenericContext code
- Add Support for non-binary BGV contexts
- Add Support for CVV
