Skip to content

Latest commit

 

History

History
75 lines (64 loc) · 2.6 KB

File metadata and controls

75 lines (64 loc) · 2.6 KB

###v0.1 (targets)

  • TODO: OMP parallelization for C vector operations
  • TODO: documentation
  • TODO: continuous integration
  • TODO: Cython bindings
  • TODO: operator typesafe equilibration
  • TODO: operator IO

###v0.0.5 (next release)

  • TODO: license
  • TODO: cite POGS
  • TODO: append version numbers to .so, check version numbers when loading libs in python
  • TODO: add tests for vector_rand, transformable operators, operator export/import
  • TODO: improve modularity in Makefile
  • TODO: sparse POGS (entails sparse CG, equil, projection: performance vs. abstract??)

###v0.0.4 (current)

  • Migrate tests to unittests
  • Eliminate slow Python implementations (to be replaced with Cython implementations in future, potentially)
  • Abstract linear operators
  • Operator implementations: dense, sparse, diagonal
  • CGLS, preconditioned CG methods for abstract operators
  • Pperator equilibration for: dense, sparse
  • Approximate projection (with CGLS) for abstract linear operators
  • Operator POGS for: dense, sparse
  • Matrix, vector reductions (min, max, indmin);
  • Memory cleanup when tests fail
  • K-means clustering on rows of dense matrices
  • Error checking throughout C libraries (all calls that don't return a pointer return an error code)

###v0.0.3

  • CPU Sparse Linear Algebra
  • GPU Sparse Linear Algebra
  • Python Sparse Linear Algebra bindings
  • Separate FunctionVector (python implementation of POGS) from Objective (python wrapper for C implementation of POGS)
  • Python backend counts allocations and calls cudaDeviceReset() when allocated blas handles and PogsSolver go out of scope (purpose: for scripts creating multiple PogsSolver instances, can delete solver objects to free GPU memory)
  • Option to suppress [y, mu, nu] from POGS solver output (C and Py)
  • Version number calls in C, Py

###v0.0.2

  • C implementations of equilibration, projection and POGS (dense only)

###v0.0.1

#ROADMAP: ###v0.2

  • CPU EVD

###v0.2.1

  • GPU EVD

###v0.3

  • CPU cone prox
  • CPU block prox

###v0.3.1

  • GPU cone prox
  • GPU block prox

###v1.0

  • Cone solver

###v++

  • adaptive alpha (line search) for POGS
  • DCP ADMM
  • installation manifest (text or yaml) for clean uninstall
  • operator l-BFGS preconditioner
  • operator k-means