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