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

RooFit::MultiProcess & TestStatistics part 3: Minuit2::NumericalDerivator #8567

Conversation

egpbos
Copy link
Contributor

@egpbos egpbos commented Jun 29, 2021

This PR introduces the NumericalDerivatorMinuit2 class, based on original code by @lmoneta (https://github.com/lmoneta/root/blob/lvmini/math/mathcore/src/NumericalDerivator.cxx). It replicates the Minuit2 numerical derivator calculations, but in a a stand alone class. This allows it to be used from RooFit to manually calculate gradients outside of Minuit2, e.g. in a parallelized way.

Checklist:

  • tested changes locally
  • updated the docs (if necessary)

This class, based on original code by @lmoneta (https://github.com/lmoneta/root/blob/lvmini/math/mathcore/src/NumericalDerivator.cxx), replicates the Minuit2 numerical derivator calculations. Because it is a stand alone class, it can be used in RooFit to manually calculate gradients outside of Minuit2, e.g. in a parallelized way.
@egpbos egpbos requested a review from lmoneta June 29, 2021 12:12
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-ubuntu16/nortcxxmod.
Running on sft-ubuntu-1604-1.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T12:17:51.252Z] FAILED: /usr/bin/ccache /usr/bin/c++ -DVECCORE_ENABLE_VC -I/mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/unix/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clingutils/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/textinput/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/thread/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/zip/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/rint/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/meta/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/gui/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/cont/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/foundation/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/base/inc -Iginclude -I/mnt/build/workspace/root-pullrequests-build/root/hist/hist/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/v7/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/imt/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/multiproc/inc -Iexternals/mnt/build/workspace/root-pullrequests-build/install/include -I/mnt/build/workspace/root-pullrequests-build/root/math/matrix/inc -I/mnt/build/workspace/root-pullrequests-build/root/graf2d/graf/inc -I/mnt/build/workspace/root-pullrequests-build/root/io/io/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/res -I/mnt/build/workspace/root-pullrequests-build/root/builtins -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu/freetype2 -I/mnt/build/workspace/root-pullrequests-build/root/tree/tree/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/minuit/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/foam/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/smatrix/inc -I/mnt/build/workspace/root-pullrequests-build/root/roofit/batchcompute/inc -I/mnt/build/workspace/root-pullrequests-build/root/net/net/inc -fdiagnostics-color=always -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -fPIC -fno-math-errno -std=c++11 -MD -MT roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o -MF roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o.d -o roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o -c /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx
  • [2021-06-29T12:17:51.252Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/inc/NumericalDerivatorMinuit2.h:27:48: fatal error: Minuit2/SinParameterTransformation.h: No such file or directory

@phsft-bot
Copy link
Collaborator

Build failed on mac1014/python3.
Running on macphsft17.dyndns.cern.ch:/build/jenkins/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T12:20:45.442Z] FAILED: roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o
  • [2021-06-29T12:20:46.006Z] /build/jenkins/workspace/root-pullrequests-build/root/roofit/roofitcore/inc/NumericalDerivatorMinuit2.h:27:10: fatal error: 'Minuit2/SinParameterTransformation.h' file not found

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos8-multicore/default.
Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T12:22:04.937Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/inc/NumericalDerivatorMinuit2.h:27:10: fatal error: Minuit2/SinParameterTransformation.h: No such file or directory

@phsft-bot
Copy link
Collaborator

Build failed on mac11.0/cxx17.
Running on macphsft23.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T12:36:36.087Z] FAILED: roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o
  • [2021-06-29T12:36:37.023Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/inc/NumericalDerivatorMinuit2.h:27:10: fatal error: 'Minuit2/SinParameterTransformation.h' file not found

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T12:38:13.752Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/inc/NumericalDerivatorMinuit2.h:27:10: fatal error: Minuit2/SinParameterTransformation.h: No such file or directory

@phsft-bot
Copy link
Collaborator

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See console output.

Errors:

  • [2021-06-29T13:12:28.251Z] C:\build\workspace\root-pullrequests-build\root\roofit\roofitcore\inc\NumericalDerivatorMinuit2.h(27,10): fatal error C1083: Cannot open include file: 'Minuit2/SinParameterTransformation.h': No such file or directory [C:\build\workspace\root-pullrequests-build\build\roofit\roofitcore\RooFitCore.vcxproj]

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-ubuntu16/nortcxxmod.
Running on sft-ubuntu-1604-2.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-07-02T07:11:17.460Z] FAILED: /usr/bin/ccache /usr/bin/c++ -DVECCORE_ENABLE_VC -I/mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/unix/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clingutils/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/textinput/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/thread/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/zip/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/rint/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/meta/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/gui/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/cont/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/foundation/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/base/inc -Iginclude -I/mnt/build/workspace/root-pullrequests-build/root/hist/hist/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/v7/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/imt/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/multiproc/inc -Iexternals/mnt/build/workspace/root-pullrequests-build/install/include -I/mnt/build/workspace/root-pullrequests-build/root/math/matrix/inc -I/mnt/build/workspace/root-pullrequests-build/root/graf2d/graf/inc -I/mnt/build/workspace/root-pullrequests-build/root/io/io/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/res -I/mnt/build/workspace/root-pullrequests-build/root/builtins -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu/freetype2 -I/mnt/build/workspace/root-pullrequests-build/root/tree/tree/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/minuit/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/minuit2/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/foam/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/smatrix/inc -I/mnt/build/workspace/root-pullrequests-build/root/roofit/batchcompute/inc -I/mnt/build/workspace/root-pullrequests-build/root/net/net/inc -fdiagnostics-color=always -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -fPIC -fno-math-errno -std=c++11 -MD -MT roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o -MF roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o.d -o roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o -c /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:14: error: ‘chrono’ is not a member of ‘std’
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:19: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:46: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:92:22: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:25: error: variable or field ‘t1’ declared void
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:29: error: variable or field ‘t2’ declared void
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:33: error: variable or field ‘t3’ declared void
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:37: error: variable or field ‘t4’ declared void
  • [2021-07-02T07:11:17.460Z] /mnt/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:41: error: variable or field ‘t5’ declared void

And 19 more

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft11.dyndns.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-07-02T07:14:34.663Z] FAILED: roofit/roofitcore/CMakeFiles/RooFitCore.dir/src/NumericalDerivatorMinuit2.cxx.o
  • [2021-07-02T07:14:35.598Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:19: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:14:35.598Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:46: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:92:22: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:25: error: variable or field ‘t1’ declared void
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:29: error: variable or field ‘t2’ declared void
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:33: error: variable or field ‘t3’ declared void
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:37: error: variable or field ‘t4’ declared void
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:41: error: variable or field ‘t5’ declared void
  • [2021-07-02T07:14:35.599Z] /home/sftnight/build/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:45: error: variable or field ‘t6’ declared void

And 17 more

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos8-multicore/default.
Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:19: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:91:46: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:92:22: error: ‘std::chrono’ has not been declared
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:25: error: variable or field ‘t1’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:29: error: variable or field ‘t2’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:33: error: variable or field ‘t3’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:37: error: variable or field ‘t4’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:41: error: variable or field ‘t5’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:45: error: variable or field ‘t6’ declared void
  • [2021-07-02T07:31:04.453Z] /data/sftnight/workspace/root-pullrequests-build/root/roofit/roofitcore/src/NumericalDerivatorMinuit2.cxx:95:49: error: variable or field ‘t7’ declared void

And 16 more

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Failing tests:

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@egpbos egpbos changed the title RooFit::MultiProcess & TestStatistics part 3: NumericalDerivatorMinuit2 RooFit::MultiProcess & TestStatistics part 3: Minuit2::NumericalDerivator Jul 7, 2021
@egpbos
Copy link
Contributor Author

egpbos commented Jul 7, 2021

Update: I have moved NumericalDerivatorMinuit2 from roofitcore into Minuit2 and, of course, renamed it into Minuit2::NumericalDerivator.

Originally, @lmoneta's NumericalDerivator was in mathcore. However, I think it fits well in Minuit2 as well, since the algorithms exactly try to mimic Minuit2's. Also, I have added some depedencies to Minuit2 parameter transformations that I think make it an even more logical fit in Minuit2 than to have to make mathcore depend on Minuit2. I guess in the end it's an arbitrary choice.

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Failing tests:

@lmoneta
Copy link
Member

lmoneta commented Jul 9, 2021

@phsft-bot build

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

lmoneta
lmoneta previously requested changes Jul 9, 2021
Copy link
Member

@lmoneta lmoneta left a comment

Choose a reason for hiding this comment

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

It looks to good to me. For clarity of the code, it would be nice to follow the ROOT coding convention for member function names and data member names, which are different than the RooFit ones.
It would be nice also to add a direct unit test of the class, but this could be eventually a separate PR

math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
math/minuit2/inc/Minuit2/NumericalDerivator.h Outdated Show resolved Hide resolved
@bellenot bellenot removed their request for review July 15, 2021 13:19
@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos8-multicore/default.
Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See console output.

Warnings:

  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:102:28: warning: ‘ROOT::Minuit2::NumericalDerivator::fNCycles’ will be initialized after [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:85:17: warning: ‘double ROOT::Minuit2::NumericalDerivator::fUp’ [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/src/NumericalDerivator.cxx:45:1: warning: when initialized here [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:102:28: warning: ‘ROOT::Minuit2::NumericalDerivator::fNCycles’ will be initialized after [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:85:17: warning: ‘double ROOT::Minuit2::NumericalDerivator::fUp’ [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/src/NumericalDerivator.cxx:53:1: warning: when initialized here [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:103:9: warning: ‘ROOT::Minuit2::NumericalDerivator::fAlwaysExactlyMimicMinuit2’ will be initialized after [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:90:24: warning: ‘std::vector<double> ROOT::Minuit2::NumericalDerivator::fVxFValCache’ [-Wreorder]
  • [2021-07-15T13:07:36.240Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/src/NumericalDerivator.cxx:53:1: warning: when initialized here [-Wreorder]

Co-authored-by: Jonas Rembser <[email protected]>
Co-authored-by: Stephan Hageboeck <[email protected]>
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

egpbos added a commit to roofit-dev/root that referenced this pull request Jul 15, 2021
From comments by @guitargeek and @hageboeck on PR root-project#8567 (root-project#8567):

- Simplify copy constructor.
- Inline simple getter/setters.
- Replace fabs with std::abs.
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@egpbos
Copy link
Contributor Author

egpbos commented Jul 15, 2021

I have applied all suggestions, thanks again for the reviews @hageboeck and @guitargeek. If you agree with delaying the pointer -> reference refactoring (#8567 (comment)), mostly because it would be a lot easier and faster to check once #8596 and the PR after that are merged, then I think this is ready to merge.

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos8-multicore/default.
Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See console output.

Warnings:

  • [2021-07-15T13:43:34.175Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:100:28: warning: ‘ROOT::Minuit2::NumericalDerivator::fNCycles’ will be initialized after [-Wreorder]
  • [2021-07-15T13:43:34.175Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/inc/Minuit2/NumericalDerivator.h:83:17: warning: ‘double ROOT::Minuit2::NumericalDerivator::fUp’ [-Wreorder]
  • [2021-07-15T13:43:34.175Z] /data/sftnight/workspace/root-pullrequests-build/root/math/minuit2/src/NumericalDerivator.cxx:45:1: warning: when initialized here [-Wreorder]

egpbos added a commit to roofit-dev/root that referenced this pull request Jul 15, 2021
From comments by @guitargeek and @hageboeck on PR root-project#8567 (root-project#8567):

- Simplify copy constructor.
- Inline simple getter/setters.
- Replace fabs with std::abs.
- Fix warning due to changed member ordering.
@egpbos egpbos force-pushed the RooFit_MultiProcess_PR_3_NumericalDerivator branch from cfe1cad to 79170ea Compare July 15, 2021 14:00
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-ubuntu16/nortcxxmod.
Running on sft-ubuntu-1604-1.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Warnings:

  • [2021-07-15T14:05:50.398Z] /mnt/build/workspace/root-pullrequests-build/root/math/minuit2/src/NumericalDerivator.cxx:52:66: warning: unused parameter ‘other’ [-Wunused-parameter]

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-07-15T14:04:12.052Z] stderr: error: could not read '.git/rebase-apply/head-name': No such file or directory

Failing tests:

egpbos added a commit to roofit-dev/root that referenced this pull request Jul 15, 2021
From comments by @guitargeek and @hageboeck on PR root-project#8567 (root-project#8567):

- Simplify copy constructor.
- Inline simple getter/setters.
- Replace fabs with std::abs.
- Fix warning due to changed member ordering.
@egpbos egpbos force-pushed the RooFit_MultiProcess_PR_3_NumericalDerivator branch from 79170ea to 948788e Compare July 15, 2021 14:59
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

From comments by @guitargeek and @hageboeck on PR root-project#8567 (root-project#8567):

- Simplify copy constructor.
- Inline simple getter/setters.
- Replace fabs with std::abs.
- Fix warning due to changed member ordering.
@egpbos egpbos force-pushed the RooFit_MultiProcess_PR_3_NumericalDerivator branch from 948788e to 435fe8f Compare July 15, 2021 15:00
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2021-07-15T15:00:48.974Z] stderr: error: could not read '.git/rebase-apply/head-name': No such file or directory

Failing tests:

Copy link
Contributor

@guitargeek guitargeek left a comment

Choose a reason for hiding this comment

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

Thank you very much for the development of the Numericalderivator class for Minuit2 and addressing the comments by @lmoneta, @hageboeck, and me! The unaddressed comment with the references instead of pointers can be indeed addressed later. This PR is ready to be merged once the Jenkins tests pass.

@egpbos
Copy link
Contributor Author

egpbos commented Jul 15, 2021

The two failing Jenkins tests are not related to this PR, correct?

@guitargeek guitargeek requested a review from lmoneta July 16, 2021 07:08
@guitargeek guitargeek dismissed lmoneta’s stale review July 16, 2021 07:10

The requested changes have been implemented by @egpbos

@guitargeek guitargeek merged commit 2b27273 into root-project:master Jul 16, 2021
@guitargeek
Copy link
Contributor

No, the Jenkins failures are fortunately not related to this PR.

@hahnjo
Copy link
Member

hahnjo commented Jul 16, 2021

FYI @guitargeek @egpbos this seems to break the default configuration because minuit2 is off by default...

@egpbos
Copy link
Contributor Author

egpbos commented Jul 16, 2021

@hahnjo indeed, this is fixed in #8689. There could still be weird cases where RooFit is set to ON but Minuit2 set OFF manually, so that should be checked. We discussed this, but I forgot to implement it in this PR, sorry for that.

pzhristov pushed a commit to alisw/root that referenced this pull request Aug 27, 2021
From comments by @guitargeek and @hageboeck on PR root-project#8567 (root-project#8567):

- Simplify copy constructor.
- Inline simple getter/setters.
- Replace fabs with std::abs.
- Fix warning due to changed member ordering.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants