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 18class 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 37class 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 51class 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