svpcvp.h
Go to the documentation of this file.
1/* Copyright (C) 2008-2011 Xavier Pujol.
2 Copyright (C) 2019 Koen de Boer & Wessel van Woerden
3
4 This file is part of fplll. fplll is free software: you
5 can redistribute it and/or modify it under the terms of the GNU Lesser
6 General Public License as published by the Free Software Foundation,
7 either version 2.1 of the License, or (at your option) any later version.
8
9 fplll is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with fplll. If not, see <http://www.gnu.org/licenses/>. */
19#ifndef FPLLL_SVPCVP_H
20#define FPLLL_SVPCVP_H
21
22#include "util.h"
23
25
32int shortest_vector(ZZ_mat<mpz_t> &b, vector<Z_NR<mpz_t>> &sol_coord,
33 SVPMethod method = SVPM_PROVED, int flags = SVP_DEFAULT);
34
35int shortest_vector_pruning(ZZ_mat<mpz_t> &b, vector<Z_NR<mpz_t>> &sol_coord,
36 const vector<double> &pruning, int flags = SVP_DEFAULT);
37
39 vector<vector<Z_NR<mpz_t>>> &subsol_coord, vector<double> &subsol_dist,
40 const vector<double> &pruning, int flags = SVP_DEFAULT);
41
43 vector<vector<Z_NR<mpz_t>>> &auxsol_coord, vector<double> &auxsol_dist,
44 const int max_aux_sols, const vector<double> &pruning,
45 int flags = SVP_DEFAULT);
46
48 vector<Z_NR<mpz_t>> &sol_coord, SVPMethod method = SVPM_PROVED,
49 int flags = SVP_DEFAULT);
50
52 vector<vector<Z_NR<mpz_t>>> &sol_coord, vector<enumf> &sol_dist,
53 const int max_sols, SVPMethod method, int flags);
54
56 vector<Z_NR<mpz_t>> &sol_coord, const vector<double> &pruning,
57 int flags = SVP_DEFAULT);
58
60 vector<Z_NR<mpz_t>> &sol_coord,
61 vector<vector<Z_NR<mpz_t>>> &subsol_coord, vector<double> &subsol_dist,
62 const vector<double> &pruning, int flags = SVP_DEFAULT);
63
65 vector<Z_NR<mpz_t>> &sol_coord,
66 vector<vector<Z_NR<mpz_t>>> &auxsol_coord, vector<double> &auxsol_dist,
67 const int max_aux_sols, const vector<double> &pruning,
68 int flags = SVP_DEFAULT);
75int closest_vector(ZZ_mat<mpz_t> &b, const vector<Z_NR<mpz_t>> &int_target,
76 vector<Z_NR<mpz_t>> &sol_coord, int method = CVPM_FAST, int flags = CVP_DEFAULT);
77
79
80#endif
Definition: gso_interface.h:60
@ CVP_DEFAULT
Definition: defs.h:252
@ CVPM_FAST
Definition: defs.h:238
#define FPLLL_END_NAMESPACE
Definition: defs.h:117
SVPMethod
Definition: defs.h:231
@ SVPM_PROVED
Definition: defs.h:233
@ SVP_DEFAULT
Definition: defs.h:244
#define FPLLL_BEGIN_NAMESPACE
Definition: defs.h:114
int shortest_vectors(MatGSOInterface< Z_NR< mpz_t >, FP_NR< mpfr_t > > &gso, vector< vector< Z_NR< mpz_t > > > &sol_coord, vector< enumf > &sol_dist, const int max_sols, SVPMethod method, int flags)
Definition: svpcvp.cpp:446
int shortest_vector_pruning(ZZ_mat< mpz_t > &b, vector< Z_NR< mpz_t > > &sol_coord, const vector< double > &pruning, int flags=SVP_DEFAULT)
Definition: svpcvp.cpp:249
int closest_vector(ZZ_mat< mpz_t > &b, const vector< Z_NR< mpz_t > > &int_target, vector< Z_NR< mpz_t > > &sol_coord, int method=CVPM_FAST, int flags=CVP_DEFAULT)
Definition: svpcvp.cpp:532
FPLLL_BEGIN_NAMESPACE int shortest_vector(ZZ_mat< mpz_t > &b, vector< Z_NR< mpz_t > > &sol_coord, SVPMethod method=SVPM_PROVED, int flags=SVP_DEFAULT)
Definition: svpcvp.cpp:243