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