Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kahan summation via HPCsharp #170

Closed
wants to merge 106 commits into from

Conversation

TysonMN
Copy link
Contributor

@TysonMN TysonMN commented Feb 9, 2021

This draft PR shows that all tests pass when using the most accurate summation available from HPCsharp.

matthewcrews and others added 30 commits November 21, 2020 23:26
…rg#113)

* fix duplicate dotnet-tools.json

* fix .sln file
* upgrade to paket 6 beta

* .gitignore tweaks

* lots of adjustments

* Flips.Solver.FlipsVersion2 project which will hold the current API
* split the files a bit in Flips.Solver.FlipsVersion2
* skeleton Flips.Solver.Cplex project
* adjust paket.dependencies to have several groups
* deal with internals visible to in rudimentary manner for now

note: tests and examples are not building
* fix duplicate dotnet-tools.json

* fix .sln file
* upgrade to paket 6 beta

* .gitignore tweaks

* lots of adjustments

* Flips.Solver.FlipsVersion2 project which will hold the current API
* split the files a bit in Flips.Solver.FlipsVersion2
* skeleton Flips.Solver.Cplex project
* adjust paket.dependencies to have several groups
* deal with internals visible to in rudimentary manner for now

note: tests and examples are not building

* moving stuff

* Updated Tooling to FSharp.Core 5.0

* getting tests running

* Added SliceMap.Extensions back

Co-authored-by: Gauthier Segay <gauthier.segay@gmail.com>
Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* updating .fsproj files

* Removed FlipsVersion2

* fixed Directory.Build.props
* Removed unnecessary file

* cleaning

* cleaning DU cases
* Fixing debug build settings

* Fixing namespacing

* Fixing namespace

* removing unnecessary inlining

* Fixed examples to work with Legacy solver

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* arranging domain

* adding types to Solver

* Updating CBC solver instance

* Updating legacy to work with rearranged types

* Updating examples with CBC solver example

* cleaning sln

* cleaning paket dependencies

* cleaning .fsproj files

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* define more types / logic in CplexSolver.fs (fslaborg#118)

* bunch of changes with cplex solver running simplest sample (fslaborg#120)

* bunch of changes with cplex solver running simplest sample

* advancing on cplex backend implementation
* set output path of projects to single folder ../bin
* adjust paket.references with proper subgroups
* add runnable samples in the doc to use Legacy & Cplex backends
* remove FakeBuild group from paket.dependencies, it is easier to handle it in build.fsx directly

* options for cplex solver :

* write to file, delegates the call to `cplex.ExportModel`
* looking at how cplex handles being populated the model several times

* Updated paket.lock

Co-authored-by: Gauthier Segay <smoothdeveloper@users.noreply.github.com>
…Is (fslaborg#128)

* Flips.Solver.Cplex: settings & callbacks

* set cplex settings value
* handling of cplex callback through cplex.Use (https://www-eio.upc.edu/lceio/manuals/cplex-11/html/refdotnetcplex/html/ILOG.CPLEX.Cplex.Use_overloads.html)

also fix stack overflow in own type extensions of Flips.Types.*.GetDecisions() by calling to `LinearExpression.Reduce`

* better honouring settings on obfuscating names or not when converting to cplex
pretty printer for some types of Flips.Types
…roblems.fs (fslaborg#131)

* move the Flips model definition of all examples into a single SampleProblems.fs

also define compile constants to allow to reference the different solvers while running the examples.

* some more models running under cplex

some cplex refactoring

* missing files with cplex example code

* move cplex file in Flips.Examples project
matthewcrews and others added 28 commits January 5, 2021 23:37
* Fixing debug build settings

* Fixing namespacing

* Fixing namespace

* removing unnecessary inlining

* Fixed examples to work with Legacy solver

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* arranging domain

* adding types to Solver

* Updating CBC solver instance

* Updating legacy to work with rearranged types

* Updating examples with CBC solver example

* cleaning sln

* cleaning paket dependencies

* cleaning .fsproj files

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* define more types / logic in CplexSolver.fs (fslaborg#118)

* bunch of changes with cplex solver running simplest sample (fslaborg#120)

* bunch of changes with cplex solver running simplest sample

* advancing on cplex backend implementation
* set output path of projects to single folder ../bin
* adjust paket.references with proper subgroups
* add runnable samples in the doc to use Legacy & Cplex backends
* remove FakeBuild group from paket.dependencies, it is easier to handle it in build.fsx directly

* options for cplex solver :

* write to file, delegates the call to `cplex.ExportModel`
* looking at how cplex handles being populated the model several times

* Updated paket.lock

Co-authored-by: Gauthier Segay <smoothdeveloper@users.noreply.github.com>
…Is (fslaborg#128)

* Flips.Solver.Cplex: settings & callbacks

* set cplex settings value
* handling of cplex callback through cplex.Use (https://www-eio.upc.edu/lceio/manuals/cplex-11/html/refdotnetcplex/html/ILOG.CPLEX.Cplex.Use_overloads.html)

also fix stack overflow in own type extensions of Flips.Types.*.GetDecisions() by calling to `LinearExpression.Reduce`

* better honouring settings on obfuscating names or not when converting to cplex
pretty printer for some types of Flips.Types
…roblems.fs (fslaborg#131)

* move the Flips model definition of all examples into a single SampleProblems.fs

also define compile constants to allow to reference the different solvers while running the examples.

* some more models running under cplex

some cplex refactoring

* missing files with cplex example code

* move cplex file in Flips.Examples project
* Updating to get builds working

* Adding Nuget publish workflow

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* added interfaces

* adjusting types

* Adding summer

* added UoM summer

* Updating ILinearExpression

* Updated dotnet version to 5.0.100

* updating FAKE

* Updating target to net5.0

* Moving toward interfaces

* Making progress

* Fixed resolving LinearExpression and Objective with Units

* Cleaning types and removing dead code

* Cleaning Flips types

* Moving to flexible types

* Updating the domain for interfaces

* Updating legacy to work with interfaces

* Migrated ORTools solver

* Fixing ReducedLinearExpression equality

* removing the sharing of internal types

* Fixing examples

* Updating CBC solver to work with interfaces

* Updating Legacy to work with interfaces

* Updating tests to work with interfaces

* Updating tests

* Updated for dev

* added interfaces

* adjusting types

* Adding summer

* added UoM summer

* Updating ILinearExpression

* Updated dotnet version to 5.0.100

* updating FAKE

* Updating target to net5.0

* Moving toward interfaces

* Making progress

* Fixed resolving LinearExpression and Objective with Units

* Cleaning types and removing dead code

* Cleaning Flips types

* Moving to flexible types

* Updating the domain for interfaces

* Updating legacy to work with interfaces

* Migrated ORTools solver

* Fixing ReducedLinearExpression equality

* removing the sharing of internal types

* Fixing examples

* Updating CBC solver to work with interfaces

* Updating Legacy to work with interfaces

* Updating tests to work with interfaces

* Updating tests

* Updated for dev

* formatting

Co-authored-by: Crews, Matthew <MatthewCrews@quickenloans.com>
* missing files with cplex example code

* move cplex file in Flips.Examples project

* move 2 remaining examples

Cplex API:
* expose call backs as a large record, as you can only register one callback per callback type.
* some more type extensions, handle output redirection configuration
* better define CplexSolution type

Co-authored-by: Matthew Crews <matthewcrews@gmail.com>
* Working around stackoverflow code in Google ORTools
* simplifying CBC code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants