mirror of
https://github.com/Z3Prover/z3
synced 2025-05-15 03:34:44 +00:00
merge with master branch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
commit
651587ce01
1602 changed files with 40496 additions and 27837 deletions
|
@ -1,7 +1,22 @@
|
|||
/*
|
||||
Copyright (c) 2017 Microsoft Corporation
|
||||
Author: Lev Nachmanson
|
||||
*/
|
||||
/*++
|
||||
Copyright (c) 2017 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
<name>
|
||||
|
||||
Abstract:
|
||||
|
||||
<abstract>
|
||||
|
||||
Author:
|
||||
|
||||
Lev Nachmanson (levnach)
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
#include "util/vector.h"
|
||||
#include <algorithm>
|
||||
|
@ -13,7 +28,7 @@
|
|||
#include "util/lp/matrix.h"
|
||||
#include "util/lp/tail_matrix.h"
|
||||
namespace lp {
|
||||
#ifdef LEAN_DEBUG
|
||||
#ifdef Z3DEBUG
|
||||
inline bool is_even(int k) { return (k/2)*2 == k; }
|
||||
#endif
|
||||
|
||||
|
@ -50,7 +65,7 @@ class permutation_matrix : public tail_matrix<T, X> {
|
|||
void init(unsigned length);
|
||||
unsigned get_rev(unsigned i) { return m_rev[i]; }
|
||||
bool is_dense() const { return false; }
|
||||
#ifdef LEAN_DEBUG
|
||||
#ifdef Z3DEBUG
|
||||
permutation_matrix get_inverse() const {
|
||||
return permutation_matrix(size(), m_rev);
|
||||
}
|
||||
|
@ -86,14 +101,14 @@ class permutation_matrix : public tail_matrix<T, X> {
|
|||
void apply_reverse_from_right_to_X(vector<X> & w);
|
||||
|
||||
void set_val(unsigned i, unsigned pi) {
|
||||
lp_assert(i < size() && pi < size()); m_permutation[i] = pi; m_rev[pi] = i; }
|
||||
SASSERT(i < size() && pi < size()); m_permutation[i] = pi; m_rev[pi] = i; }
|
||||
|
||||
void transpose_from_left(unsigned i, unsigned j);
|
||||
|
||||
unsigned apply_reverse(unsigned i) const { return m_rev[i]; }
|
||||
|
||||
void transpose_from_right(unsigned i, unsigned j);
|
||||
#ifdef LEAN_DEBUG
|
||||
#ifdef Z3DEBUG
|
||||
T get_elem(unsigned i, unsigned j) const{
|
||||
return m_permutation[i] == j? numeric_traits<T>::one() : numeric_traits<T>::zero();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue