1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//!An implementation of
//.
//!
//! Flag algebras is a framework used to produce computer-assisted proofs of some inequalities in combinatorics, relying on Semi-Definite Programming.
//!
//!# Example
//!
//!```rust,no_run
//! // Proving that in any graph, at least 1/4 of the triples
//! // are triangles or independent sets.
//!extern crate flag_algebra;
//!
//!use flag_algebra::*;
//!use flag_algebra::flags::Graph;
//!use sdp::Problem;
//!
//!pub fn main() {
//! // Work on the graphs of size 3.
//! let basis = Basis::new(3);
//!
//! // Define useful flags.
//! let k3 = flag(&Graph::new(3, &[(0, 1), (1, 2), (2, 0)])); // Triangle
//! let e3 = flag(&Graph::new(3, &[])); // Independent set of size 3
//!
//! // Definition of the optimization problem.
//! let pb = Problem::<i64, _> {
//! // Constraints
//! ineqs: vec![total_sum_is_one(basis), flags_are_nonnegative(basis)],
//! // Use all relevant Cauchy-Schwarz inequalities.
//! cs: basis.all_cs(),
//! // Minimize density of triangle plus density of independent of size 3.
//! obj: k3 + e3,
//! };
//!
//! // Write the correspondind SDP program in "goodman.sdpa".
//! // This program can then be solved by CSDP. The answer would be 0.25.
//! pb.write_sdpa("goodman").unwrap();
//!}
//!```
//!
pub use crate*;
pub use crate;
pub use crateHtml;
pub use crateProblem;
pub use crate*;
pub use crate*;
extern crate serde_derive;
// Feedback information in the library are sent using simplelog
// This logs require to be initialized
use *;
/// Initialize the logs to be outputted to the console.
///
/// In order to be recorded, the logs need to be initialized via this function
/// or any initializer of the simplelog library
/// Initialize the logs to be outputted to the console with detailed information.
///
/// In order to be recorded, the logs need to be initialized via this function
/// or any initializer of the simplelog library