GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/omt/integer_optimizer.h Lines: 2 2 100.0 %
Date: 2021-09-07 Branches: 0 0 0.0 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Yancheng Ou
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 * in the top-level source directory and their institutional affiliations.
9
 * All rights reserved.  See the file COPYING in the top-level source
10
 * directory for licensing information.
11
 * ****************************************************************************
12
 *
13
 * Optimizer for Integer type.
14
 */
15
16
#ifndef CVC5__OMT__INTEGER_OPTIMIZER_H
17
#define CVC5__OMT__INTEGER_OPTIMIZER_H
18
19
#include "omt/omt_optimizer.h"
20
21
namespace cvc5::omt {
22
23
/**
24
 * Optimizer for Integer type
25
 */
26
class OMTOptimizerInteger : public OMTOptimizer
27
{
28
 public:
29
8
  OMTOptimizerInteger() = default;
30
16
  virtual ~OMTOptimizerInteger() = default;
31
  smt::OptimizationResult minimize(SmtEngine* optChecker,
32
                                   TNode target) override;
33
  smt::OptimizationResult maximize(SmtEngine* optChecker,
34
                                   TNode target) override;
35
36
 private:
37
  /**
38
   * Handles the optimization query specified by objType
39
   * isMinimize = true will trigger minimization,
40
   * otherwise trigger maximization
41
   **/
42
  smt::OptimizationResult optimize(SmtEngine* optChecker,
43
                                   TNode target,
44
                                   bool isMinimize);
45
};
46
47
}  // namespace cvc5::omt
48
49
#endif /* CVC5__OMT__INTEGER_OPTIMIZER_H */