## Simple Arithmetic on Blocks

Simple Arithmetic on Blocks — Aritmetic operations on 8x8 blocks

## Synopsis

    void                oil_mult8x8_s16                     (int16_t *d_8x8,
                                                             const int16_t *s1_8x8,
                                                             const int16_t *s2_8x8,
                                                             int ds,
                                                             int ss1,
                                                             int ss2);
    void                oil_sad8x8_f64                      (double *d_8x8,
                                                             int ds,
                                                             const double *s1_8x8,
                                                             int ss1,
                                                             const double *s2_8x8,
                                                             int ss2);
    void                oil_sad8x8_s16                      (uint32_t *d_8x8,
                                                             int ds,
                                                             const int16_t *s1_8x8,
                                                             int ss1,
                                                             const int16_t *s2_8x8,
                                                             int ss2);
    void                oil_sad8x8_f64_2                    (double *d_1,
                                                             const double *s1_8x8,
                                                             int ss1,
                                                             const double *s2_8x8,
                                                             int ss2);
    void                oil_sad8x8_s16_2                    (uint32_t *d_1,
                                                             const int16_t *s1_8x8,
                                                             int ss1,
                                                             const int16_t *s2_8x8,
                                                             int ss2);
    void                oil_sad8x8_u8                       (uint32_t *d_1,
                                                             const uint8_t *s1_8x8,
                                                             int ss1,
                                                             const uint8_t *s2_8x8,
                                                             int ss2);

## Description

## Details

### oil_mult8x8_s16 ()

    void                oil_mult8x8_s16                     (int16_t *d_8x8,
                                                             const int16_t *s1_8x8,
                                                             const int16_t *s2_8x8,
                                                             int ds,
                                                             int ss1,
                                                             int ss2);

Multiplies each element in `s1_8x8` and `s2_8x8` and places the result in `d_8x8`.

`d_8x8` : |
`s1_8x8` : |
`s2_8x8` : |
`ds` : |
`ss1` : |
`ss2` : |

### oil_sad8x8_f64 ()

    void                oil_sad8x8_f64                      (double *d_8x8,
                                                             int ds,
                                                             const double *s1_8x8,
                                                             int ss1,
                                                             const double *s2_8x8,
                                                             int ss2);

FIXME: This function is broken and has been replaced by @`oil_sad8x8_f64_2()` because the destination of this function is an 8x8 block instead of a single value.

`d_8x8` : |
`ds` : |
`s1_8x8` : |
`ss1` : |
`s2_8x8` : |
`ss2` : |

### oil_sad8x8_s16 ()

    void                oil_sad8x8_s16                      (uint32_t *d_8x8,
                                                             int ds,
                                                             const int16_t *s1_8x8,
                                                             int ss1,
                                                             const int16_t *s2_8x8,
                                                             int ss2);

FIXME: This function is broken and has been replaced by @`oil_sad8x8_s16_2()` because the destination of this function is an 8x8 block instead of a single value.

`d_8x8` : |
`ds` : |
`s1_8x8` : |
`ss1` : |
`s2_8x8` : |
`ss2` : |

### oil_sad8x8_f64_2 ()

    void                oil_sad8x8_f64_2                    (double *d_1,
                                                             const double *s1_8x8,
                                                             int ss1,
                                                             const double *s2_8x8,
                                                             int ss2);

Calculates the sum of absolute differences between elements in `s1_8x8` and `s2_8x8`, and places the result in `d_1`.

`d_1` : |
`s1_8x8` : |
`ss1` : |
`s2_8x8` : |
`ss2` : |

### oil_sad8x8_s16_2 ()

    void                oil_sad8x8_s16_2                    (uint32_t *d_1,
                                                             const int16_t *s1_8x8,
                                                             int ss1,
                                                             const int16_t *s2_8x8,
                                                             int ss2);

Calculates the sum of absolute differences between elements in `s1_8x8` and `s2_8x8`, and places the result in `d_1`.

`d_1` : |
`s1_8x8` : |
`ss1` : |
`s2_8x8` : |
`ss2` : |

### oil_sad8x8_u8 ()

    void                oil_sad8x8_u8                       (uint32_t *d_1,
                                                             const uint8_t *s1_8x8,
                                                             int ss1,
                                                             const uint8_t *s2_8x8,
                                                             int ss2);

Calculates the sum of absolute differences between elements in `s1_8x8` and `s2_8x8`, and places the result in `d_1`.

`d_1` : |
`s1_8x8` : |
`ss1` : |
`s2_8x8` : |
`ss2` : |