# Computer Arithmetic

Computer arithmetic deals with the studydesignoptimization and validation of theoretical and practical means of computing operations such as addition, subtraction, multiplication, division, square-root, cubic-root, norms, sine, cosine, exponential, logarithm, hyperbolic functions, functions approximations, dedicated operators for signal or image processing (e.g. FFT), dedicated operators for cryptography, modular operations, etc. Various representations of numbers (or number systems) can be used depending on the application and implementation constraints: integer, fixed point, floating point, residue number system (RNS), logarithmic number system (LNS), finite field (F2m, Fp), intervals, multiple precision, high radix, redundant number systems, etc.

The design of efficient (accurate, fast, small silicon area or memory/code size, low power consumption, security, reliability to errors/faults) arithmetic operators depends on a complex trade-off between:

• the number system(s) used to represent the data (width, digits coding at bit level…);
• the algorithms used to compute the mathematical operations (evaluation methods, speed/area trade-offs, fused operations…);
• the characteristics of data (accuracy, signal activity, space/time correlations…);
• and some implementation constraints (specific cells in the standard library, logic style, available instructions…).

Validation of algorithms and operators is also in important topic in computer arithmetic. The validation can be done at design time (using formal proof methods and tools for instance) or during the execution. The accuracy of the computations and their specific behvior (e.g. overflow) have to be validated.

## Arithmetic Operators Developped in CAIRN

• Standard and low power arithmetic operators
• Multiplication by constants
• Division
• Functions approximations (polynomial, tables and addition…)
• Operators for cryptography (operations over large finite fields and integers for ECC, HECC, RSA and FHE)
• Estimated arithmetic operators for multimedia and signal-processing applications
• Reliable arithmetic operators for signal processing applications