Home | History | Annotate | Download | only in meta
      1 // Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef GEMMLOWP_META_OPERATIONS_COMMON_H_
     16 #define GEMMLOWP_META_OPERATIONS_COMMON_H_
     17 
     18 class Quantized8BitOperation {
     19  public:
     20   Quantized8BitOperation(std::int32_t lhs_offset, std::int32_t rhs_offset,
     21                          std::int32_t sum_offset, std::int32_t multiplier,
     22                          std::int32_t shift)
     23       : lhs_offset(lhs_offset),
     24         rhs_offset(rhs_offset),
     25         sum_offset(sum_offset),
     26         multiplier(multiplier),
     27         shift(shift) {}
     28 
     29  protected:
     30   std::int32_t lhs_offset;
     31   std::int32_t rhs_offset;
     32   std::int32_t sum_offset;
     33   std::int32_t multiplier;
     34   std::int32_t shift;
     35 };
     36 
     37 class FloatOperation {
     38  public:
     39   FloatOperation(std::int32_t lhs_offset, std::int32_t rhs_offset,
     40                  float result_offset)
     41       : lhs_offset(lhs_offset),
     42         rhs_offset(rhs_offset),
     43         result_offset(result_offset) {}
     44 
     45  protected:
     46   std::int32_t lhs_offset;
     47   std::int32_t rhs_offset;
     48   float result_offset;
     49 };
     50 
     51 class Int32Operation {
     52  public:
     53   Int32Operation(std::int32_t lhs_offset, std::int32_t rhs_offset)
     54       : lhs_offset(lhs_offset), rhs_offset(rhs_offset) {}
     55 
     56  protected:
     57   std::int32_t lhs_offset;
     58   std::int32_t rhs_offset;
     59 };
     60 
     61 #endif  // GEMMLOWP_META_OPERATIONS_COMMON_H_
     62