Skip to content

Conversation

@valentjn
Copy link
Member

@valentjn valentjn commented Jul 30, 2019

This is for merging the changes made during writing my PhD thesis from the sgopt to the master branch.

Rough changelog:

  • base module:
    • New grid types:
      • NotAKnotBsplineBoundaryGrid
      • ModNotAKnotBsplineGrid
      • NaturalBsplineBoundaryGrid
      • FundamentalNotAKnotSplineBoundaryGrid
      • FundamentalSplineBoundaryGrid
      • WeaklyFundamentalNotAKnotSplineBoundaryGrid
      • ModWeaklyFundamentalNotAKnotSplineGrid
    • Corresponding basis types and evaluation operations
    • Hierarchisation for fundamental spline grids via breadth-first search
  • combigrid module:
    • Fix fallthrough warnings
  • datadriven module:
    • Add new grid types to LearnerSGDE and GridTypeParser
  • optimization module:
    • Fix various bugs in optimizers, move gradient members to base classes, add missing getters/setters
    • New framework for fuzzy extension principle (fuzzy logic) as an example application of SG optimization
    • New IterativeGridGenerator for fuzzy logic based on Ritter-Novak
    • Add convience bulk eval methods to ScalarFunction/VectorFunction and gradients
    • New ScaledScalarFunction function type and gradients
    • Add new grid types to optimization classes with respect to grid generation and hierarchization
    • Changes to test functions (names and equations)
  • pde module:
    • Fix dependency of test_OperationMoment on pde
  • Other:
    • Fix wrong path order in SConstruct
    • Fix Python 2.x iteritems() call in cpplint
    • Add script for fixing relative include paths

TODO:

  • add all new grid types to other modules if missing
  • add documentation if missing
  • add Doxygen documentation to fuzzy example
  • add tests if missing

Fixes #63.

valentjn added 30 commits August 1, 2016 09:25
Caveats:
* Disables Python tests.
* Searches Python 3.x include path with a rather dirty hack
* NumPy interface for DataVector/DataMatrix not tested
* Add Lagrange*BasisDerivX for X = 1, 2, 3.
* Use coefficients in scientific notation instead of using
  very long quotients (slightly more readable code).
* Add new bases to pysgpp and jsgpp.
Have been too eager with my last commit.
Theoretically, Lagrange bases are easier to be hierarchize.
Practically, things are not that easy as for each hierarhical
level, a linear system has still to be solved. The system should
be banded (d = 1) or at least sparse (d > 1); but for now, it's
too complicated to implement that. So, remove the Hierarchisation
operations from sgpp::base and add naive MultipleHierarchisation
operations in sgpp::optimization.
TODOs:
* Add to SWIG interfaces.
* Add tests.
* Add comments/documentation.
* Do a little more testing (other functions, higher
  dimensionalities, other grids, ...).
valentjn added 11 commits August 4, 2019 10:41
GCC sometimes fails with internal compiler error on mingw-w64
(e.g., "in gt_ggc_m_S, at ggc-page.c:1474" or "segmentation
fault"). Disabling -Wmisleading-indentation (from -Wall) seems to
fix the problem. Although GCC says when the warning is not
disabled that "pysgpp\pysgpp_wrap.cc:322190:0: note:
-Wmisleading-indentation is disabled from this point onwards,
since column-tracking was disabled due to the size of the
code/headers", it still crashes...
MichaelReh
MichaelReh previously approved these changes Aug 5, 2019
Copy link
Member

@MichaelReh MichaelReh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
However, this pull request is so large, that I could not review everything in detail.

@valentjn
Copy link
Member Author

valentjn commented Aug 5, 2019

@MichaelReh Thanks. Sorry that the PR is too big. The branch is a remnant of the SVN days at TUM, and has since been carried over to GitLab and then to GitHub (of course with some merging in between). I'll use smaller feature branches in the future.

@valentjn valentjn requested a review from MichaelReh August 5, 2019 14:08
@valentjn
Copy link
Member Author

valentjn commented Aug 5, 2019

This is now ready to merge. #157 is already contained in here and can be closed, if this is merged.

@valentjn valentjn merged commit 166aacf into master Aug 5, 2019
@valentjn valentjn deleted the sgopt branch August 5, 2019 16:34
@leiterrl leiterrl added this to the v3.3.0 milestone Aug 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Choose inner optimization method in constrained optimization

5 participants