Revision c0cc48c3328d0a7ea990cf43c01fb3b08c0b0c24 authored by Marios Papachristou on 17 July 2020, 07:44:29 UTC, committed by GitHub on 17 July 2020, 07:44:29 UTC
* Initialize report

* Add solvers file

* WIP: Add Euler ODE Solver

* WIP: Add Euler Method

* Add boundary reflections to Euler

* Fix boundary reflections

* Add test for ODE dx/dt = -x for Euler Method

* Add test for dx/dt = x in [0, 1]

* Add is_in for multiple reflections

* Add normalize flag to get_direction

* Minor modifications

* WIP: Add HMC for log-concave densities

* Add tests for HMC

* Add details to README

* Add tests for leapfrog method

* Add leapfrog method

* Add HMC and HMC tests

* Separate Euler and Leapfrog

* Remove ode_solvers.h

* Refactor solver implementations

1. Move solvers to separate file
2. Fix includes. The ode_solvers.h base file
includes the rest of the solvers and is respon-
sible for doing the correct includes.

* Add RK methods header file

* WIP: Add generic RK methods

* Implement RK methods with testing

* Add collocation method header files

* Fix bug in RK methods

* WIP: Collocation method constructors

* WIP: Implement collocation method

* Add root_finders header file

* Add CHECK() statements and fix minor bugs

* Bug fix for boundary oracle

* Add CHEK() for constrained leapfrog

* Add Newton-Raphson method for root finding

* Add return statement

* Add notice

* Add regularization (smoothing) and max_iters

* Add const where needed

* Add BS method

* Add Bulirsch-Stoer implementation

* Add Bulirsch-Stoer implementation

* Add constrained BS method

* WIP: Debug collocation method

* WIP: Debug collocation method

* Add rational fcn and grad of rational fcn functors

* WIP: Add testcase for collocation methods

* Fix BS method

* Minor changes

* Add resources to ODE solvers

* Initialize curve_intersect for Hpoly

* WIP: Boundary oracles

* WIP: Boundary oracles

* WIP: Boundary oracles

* WIP: Boundary oracles

* WIP: Boundary oracles

* WIP: Add isinf for well-posedness of denominator in NR

* Move func template one level above (for ULD to work later)

* Initialize boundary oracles test

* Add boundary oracle test CMake targets

* Initialize boundary oracles tests

* Working boundary oracle for H-polytope

1. Uses Newton-Raphson for solving transcendental equations
2. Can find multiple/one root
3. Tests are implemented for the curves (t, t) and (t, 2t^2)

* Initialize NLP oracles (general curve w/ polytope)

* Finish boundary oracle tests for H-polytope

* Add ifopt and ipopt to CMakeLists.txt

* Add wrapper function for nlp oracles

* Working nlp H-polyoracle

* Rename nlp polyoracles to avoid confusion with lp oracles

* Remove old polyoracles file

* Document NLP hpolyoracles

* Minor refactoring

* Add wrapper function

* WIP: Initialize NLP oracle for V-polytope

* Update readme with GSoC information

* Add benchmarks with random polynomials

* Modify membership condition

* Restrain test to t only

* Bug fixes

* Code cleanup

* Move to old commit (before merge)

* Merge ode solvers

* Rename testcases

* Merge root finders test

* Move hmc to sampling/ directory

* Partial fix for V polyoracles with ipopt

* Fix linear collocation method

* Fix collocation with approximate computation

* Improve README file

* Add precomputation flag

* Improve NR solver

* Add central method for curve_intersect

* Change return type of nlp vpolyoracle to return dummy facet

* WIP: Integrate boundary oracles to collocation

* Fix collocation method boundary oracles (w/ tests)

* Bug fixes

* Add mpsolve and gmp to CMakeLists.txt

* Implement mpsolve wrapper

* WIP: Integrate mpsolve

* Fix preprocessor directives

* Add boundary oracle with mpsolve

* Fix minor issues

* Fix existing working tests

* Add min_pos optimization problem

* WIP: Minor changes in way of reflection

* Remove hmc sampler temporarily (move it to temp branch)

* Fix reflections

* Add dependencies(mpsolve, ipopt/ifopt) to CircleCI

* Fix config

* Fix config

* Fix config

* Add dependency at circleci config

* Add dependency at circleci config

* Add dependency at circleci config

* Add dependency at circleci config

* Add dependency at circleci config

* Add root finders test

* Minor fixes in boundary oracles

* Fix bounded collocation

* Typo fix

* Add missing test to cmakelists

* Add #undef where it is needed

* Remove extraneous dynamic linking

* Fix erroneous flag

* Remove hmc tests (moved to other branch)

* Update clang and g++ workflows

* Fix failing R tests

* Fix failing R tests

* Split checking for ubuntu/macOS

* Remove misplaced if statement

* Add CMAKE_CXX_COMPILER flag to ifopt

* Correct test name

* Remove sudo in front of brew cmd

* Add automake dependency

* Change error_on from "warning" to "error"

* Add preprocessor directive to disable NLP oracles

* Add flag for disabling oracles

* Add macro definitions for disabling oracles

* Add windows workflow

* Modify windows workflow

* Change Makevars.win

* Change Makevars.win

* Change Makevars.win

* Disable NLP oracles to all tests

* Modify circleci build

* Modify circleci build

* Add preprocessor directive

* Remove report

* Remove GSoC details

* Move macro

* Remove unused typedefs

* Modify copyright notices

* Fix typo

* Rename rk.h to runge_kutta.hpp

* Minor correction

* Rename .h to .hpp in ODE solvers

* Rename nlp oracles from .h to .hpp

* Rename root finders

* Remove duplicate include

* Reorder #include directives

* Refactoring

* Rename file

* Add velocity reflections

* Remove extraneous constructors

* Add general docs for solvers

* Temp refactoring

* Fix minor bugs

* Remove flag from richardson implementation

* Add facet ignore

* Finish oracles refactoring

* Consistent copyright notices

* Add accidentally removed templates

* Consistent copyright notices

* Add nlp_oracles.hpp main header file

* Minor modifications

* Change variable name from oracle to intersection_oracle

* Remove unused file

* Add higher-order reflections

* Add missing ignore_facet

* Wrap long lines

* Remove print statement

* Impose sticky boundary conditions for collocation

* Impose sticky boundary conditions for collocation

* WIP: Add integral collocation method class prototype

* Delete integral_collocation.hpp

* Modifications to collocation method

* Iteratively solve non-linear equations

* Fix bugs

* Minor modifications to test routines

* Optimize function oracles

* Comment for future work

* Minor changes

* Remove comments from yaml

* Restore README

* Restore README
1 parent 21c6bf5
Raw File
README.md
**VolEsti** is a `C++` library for volume approximation and sampling of convex bodies (*e.g.* polytopes) with an `R` and limited `python` interface. **VolEsti** is part of the [GeomScale](https://geomscale.github.io) project.

[![CRAN status](https://www.r-pkg.org/badges/version/volesti)](https://cran.r-project.org/package=volesti)
[![CRAN downloads](https://cranlogs.r-pkg.org/badges/volesti)](https://cran.r-project.org/package=volesti)
![CRAN/METACRAN](https://img.shields.io/cran/l/volesti)
[![Chat](https://badges.gitter.im/boostorg/geometry.png)](https://gitter.im/GeomScale/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link)

### Test results

[![CRAN check](https://cranchecks.info/badges/worst/volesti)](https://cran.r-project.org/web/checks/check_results_volesti.html)
[![CircleCI master](https://circleci.com/gh/GeomScale/volume_approximation/tree/master.svg?style=shield)](https://circleci.com/gh/GeomScale/volume_approximation/tree/master)
[![CircleCI develop](https://circleci.com/gh/GeomScale/volume_approximation/tree/develop.svg?style=shield)](https://circleci.com/gh/GeomScale/volume_approximation/tree/develop)
[![gcc-test](https://github.com/GeomScale/volume_approximation/workflows/gcc-test/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3Agcc-test)
[![clang-test](https://github.com/GeomScale/volume_approximation/workflows/clang-test/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3Aclang-test)
[![R-CMD-check](https://github.com/GeomScale/volume_approximation/workflows/R-CMD-check/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3AR-CMD-check)

###  Documentation

* [Using the R Interface](doc/r_interface.md)
* [Using the C++ Interface](doc/cpp_interface.md)
* [Using the Python Interface](volestipy/README.md)
* [Wikipage with Tutorials and Demos](https://github.com/GeomScale/volume_approximation/wiki)
* [Tutorial given to PyData meetup](https://vissarion.github.io/tutorials/volesti_tutorial_pydata.html)
* [Contributing](CONTRIBUTING.md)

### Credits

* [Contributors and Package History](doc/credits.md)
* [List of Publications](doc/publications.md)

Copyright (c) 2012-2020 Vissarion Fisikopoulos  
Copyright (c) 2018-2020 Apostolos Chalkis  

You may redistribute or modify the software under the GNU Lesser General Public License as published by Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.  
back to top