PSOPT / psopt

PSOPT Optimal Control Software
GNU Lesser General Public License v2.1
193 stars 75 forks source link

Cmake and Eigen3 #15

Closed schulz0r closed 3 years ago

schulz0r commented 3 years ago

Hello, After we agreed that dmatrix and its dependencies are hard to integrate into a modern build system such as CMake, I removed dmatrix from this project. The PSOPT code has then been moved to the root directory and can now generate a project. Just create a directory build/, then do

cd build/
cmake ..

This will create a Makefile project. Check this site if you want to generate a Visual Studio project (cmake -G "Visual Studio 15 2017" ..) or others. Optionally, you can pass the option -DBUILD_EXAMPLES=ON in the command line. This will create the examples in the examples/ directory. So, here is what I usually do: cmake -G Xcode -DBUILD_EXAMPLES=ON ...

Don't forget to install Eigen3 on your system before generating the project. This should be available in every package manager out there. When you are done, you will have a project file in the build/ directory. Open that with the IDE of your choice and hit the compile button. The generated project won't compile because dmatrix is missing. Now, the bugs must be resolved by changing all dmatrices with Eigen::Matrix and other things to do. The Snopt-interface has not been altered until now, but feel free to ask me whenever it seems necessary. I hope that this work will help you with modernizing PSOPT.

Edit: Sorry, the first PR did not address the eigen3 branch, so here I try again.

Best regards

Philipp Waxweiler

vmbecerra commented 3 years ago

Dear Philipp

Many thanks for the push request, which I have accepted and therefore have now incorporated your updates into the 'eigen3' branch.

I have also cloned that branch to my local Ubuntu installation, installed Eigen3 using the CMake process, created the build folder under the PSOPT/eigen3 clone, moved there and tried the command 'cmake ..'.

Some errors were reported regarding the absence of Ipopt and Adolc. I am copying below what came out:

victor@ubuntu:~/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build$ cmake .. -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Checking for module 'adolc' -- No package 'adolc' found -- Checking for module 'ipopt' -- No package 'ipopt' found CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal) CMakeLists.txt:9 (pkg_check_modules)

-- Configuring incomplete, errors occurred! See also "/home/victor/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build/CMakeFiles/CMakeOutput.log".

I had a look at the file CMake-lists-adolc.txt.in and I noted that you don't seem to be configuring Adol-c to be using the package ColPack, which is one of the requirements for getting Adol-c to work with sparse derivatives. Perhaps the installation of ColPack and Ipopt need to be added as well as additional packages that need to be configured/installed if they are not detected.

I noted also that although you included instructions to build adol-c if it is not found, these do not seem to have been considered when I tried the command 'cmake ..'

I guess we will need to interact a bit to get things working, but it will be worthwhile.

Apologies, I am still a beginner with Cmake but I will learn.

Best regards

Victor.

On Fri, 24 Jul 2020 at 10:55, schulz0r notifications@github.com wrote:

Hello, After we agreed that dmatrix and its dependencies are hard to integrate into a modern build system such as CMake, I removed dmatrix from this project. The PSOPT code has then been moved to the root directory and can now generate a project. Just create a directory build/, then do

cd build/ cmake ..

This will create a Makefile project. Check this https://cmake.org/cmake/help/v3.18/manual/cmake-generators.7.html site if you want to generate a Visual Studio project (cmake -G "Visual Studio 15 2017" ..) or others. Optionally, you can pass the option -DBUILD_EXAMPLES=ON in the command line. This will create the examples in the examples/ directory. So, here is what I usually do: cmake -G Xcode -DBUILD_EXAMPLES=ON ...

Don't forget to install Eigen3 on your system before generating the project. This should be available in every package manager out there. When you are done, you will have a project file in the build/ directory. Open that with the IDE of your choice and hit the compile button. The generated project won't compile because dmatrix is missing. Now, the bugs must be resolved by changing all dmatrices with Eigen::Matrix and other things to do. The Snopt-interface has not been altered until now, but feel free to ask me whenever it seems necessary. I hope that this work will help you with modernizing PSOPT.

Edit: Sorry, the first PR did not address the eigen3 branch, so here I try again.

Best regards

Philipp Waxweiler

You can view, comment on, or merge this pull request online at:

https://github.com/PSOPT/psopt/pull/15 Commit Summary

  • initial CMake files
  • adolc is automatically added to this project in case it is not installed on the disk
  • do not include when using MacOS X because header is unknown to that environment
  • added f2c header from dmatrix library so that fortran types are recognized
  • min() was not defined, changed to std::min
  • added include directories for adolc. adolc header does not compile when c++11 flag has not been set, so flag was explicitly added
  • added IPOPT header so that Ipopt::ApplicationReturnStatus::Solve_Succeeded is defined
  • ipopt is now correctly added to the project
  • removed empty class declarations for DMatrix and its sparse equivalent
  • now sparse option is enabled for adolc
  • added options to build docs and examples
  • added executables for each example
  • sparse matrix class has been moved to its own file
  • added implementation for matrix functions which have been deprived of default arguments
  • removed code from sparse matrix
  • moved the last chunk of sparse matrix code to sparsematrix.cxx
  • added suite sparse and lusol to project
  • added sparse matrix header
  • removed dmatrix to make place for Eigen3
  • added option to include examples. fixed example cmake lists
  • deleted invalid cmake files and Makefiles

File Changes

Patch Links:

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PSOPT/psopt/pull/15, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGCMBMKAGGNNMMFMFWONNTR5FLCBANCNFSM4PGR25ZQ .

schulz0r commented 3 years ago

Hello, CMake fails because Ipopt is not installed on your system. As you can see, it is marked with the keyword REQUIRED. That means, if it is not available, CMake will throw an error and the project file will not be generated. Usually, I don’t add install scripts for every single dependency, especially if it is widely available, i.e. Ipopt or Eigen3. When CMake demands a package, you have to install it and try "cmake ..“ again. A quick search revealed that the package coinor-libipopt-dev is available for Ubuntu. I suggest to install this.

Adolc should work even if CMake spits out an error, because it is not marked with REQUIRED. The CMake file first checks if Adolc is already installed on the system, but it is apparently is not. Thus, it warns you that it is not available. As a result, CMake will employ CMake-lists-adolc.txt.in to automatically add it to the project. Maybe I should have added a warning to clarify that it is not an issue. Installing Ipopt is all you need to do for now. I will move to another location this weekend so I am busy. I won’t have access to the internet until Wednesday, but you should be able to start fixing most of the project after installing Ipopt. I will take care of Colpack when I am available again.

Regards

Philipp

Am 24.07.2020 um 18:12 schrieb vmbecerra notifications@github.com:

Dear Philipp

Many thanks for the push request, which I have accepted and therefore have now incorporated your updates into the 'eigen3' branch.

I have also cloned that branch to my local Ubuntu installation, installed Eigen3 using the CMake process, created the build folder under the PSOPT/eigen3 clone, moved there and tried the command 'cmake ..'.

Some errors were reported regarding the absence of Ipopt and Adolc. I am copying below what came out:

victor@ubuntu:~/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build$ cmake .. -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Checking for module 'adolc' -- No package 'adolc' found -- Checking for module 'ipopt' -- No package 'ipopt' found CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal) CMakeLists.txt:9 (pkg_check_modules)

-- Configuring incomplete, errors occurred! See also "/home/victor/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build/CMakeFiles/CMakeOutput.log".

I had a look at the file CMake-lists-adolc.txt.in and I noted that you don't seem to be configuring Adol-c to be using the package ColPack, which is one of the requirements for getting Adol-c to work with sparse derivatives. Perhaps the installation of ColPack and Ipopt need to be added as well as additional packages that need to be configured/installed if they are not detected.

I noted also that although you included instructions to build adol-c if it is not found, these do not seem to have been considered when I tried the command 'cmake ..'

I guess we will need to interact a bit to get things working, but it will be worthwhile.

Apologies, I am still a beginner with Cmake but I will learn.

Best regards

Victor.

On Fri, 24 Jul 2020 at 10:55, schulz0r notifications@github.com wrote:

Hello, After we agreed that dmatrix and its dependencies are hard to integrate into a modern build system such as CMake, I removed dmatrix from this project. The PSOPT code has then been moved to the root directory and can now generate a project. Just create a directory build/, then do

cd build/ cmake ..

This will create a Makefile project. Check this https://cmake.org/cmake/help/v3.18/manual/cmake-generators.7.html site if you want to generate a Visual Studio project (cmake -G "Visual Studio 15 2017" ..) or others. Optionally, you can pass the option -DBUILD_EXAMPLES=ON in the command line. This will create the examples in the examples/ directory. So, here is what I usually do: cmake -G Xcode -DBUILD_EXAMPLES=ON ...

Don't forget to install Eigen3 on your system before generating the project. This should be available in every package manager out there. When you are done, you will have a project file in the build/ directory. Open that with the IDE of your choice and hit the compile button. The generated project won't compile because dmatrix is missing. Now, the bugs must be resolved by changing all dmatrices with Eigen::Matrix and other things to do. The Snopt-interface has not been altered until now, but feel free to ask me whenever it seems necessary. I hope that this work will help you with modernizing PSOPT.

Edit: Sorry, the first PR did not address the eigen3 branch, so here I try again.

Best regards

Philipp Waxweiler

You can view, comment on, or merge this pull request online at:

https://github.com/PSOPT/psopt/pull/15 Commit Summary

  • initial CMake files
  • adolc is automatically added to this project in case it is not installed on the disk
  • do not include when using MacOS X because header is unknown to that environment
  • added f2c header from dmatrix library so that fortran types are recognized
  • min() was not defined, changed to std::min
  • added include directories for adolc. adolc header does not compile when c++11 flag has not been set, so flag was explicitly added
  • added IPOPT header so that Ipopt::ApplicationReturnStatus::Solve_Succeeded is defined
  • ipopt is now correctly added to the project
  • removed empty class declarations for DMatrix and its sparse equivalent
  • now sparse option is enabled for adolc
  • added options to build docs and examples
  • added executables for each example
  • sparse matrix class has been moved to its own file
  • added implementation for matrix functions which have been deprived of default arguments
  • removed code from sparse matrix
  • moved the last chunk of sparse matrix code to sparsematrix.cxx
  • added suite sparse and lusol to project
  • added sparse matrix header
  • removed dmatrix to make place for Eigen3
  • added option to include examples. fixed example cmake lists
  • deleted invalid cmake files and Makefiles

File Changes

Patch Links:

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PSOPT/psopt/pull/15, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGCMBMKAGGNNMMFMFWONNTR5FLCBANCNFSM4PGR25ZQ .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PSOPT/psopt/pull/15#issuecomment-663615184, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC7OZDXOPGFG2M2FMR3F6VLR5GXF3ANCNFSM4PGR25ZQ.

vmbecerra commented 3 years ago

Philipp

Thanks for the explanation. I do have Ipopt installed, but probably it is not visible to CMake as I compiled it from source code and it is not located in one of the main folders, such as /usr/lib or /usr/local/lib. Yes, I will start working on the changes from DMatrix to Eigen3.

Enjoy your weekend. I hope all goes well with the move.

Best

Victor.

On Fri, 24 Jul 2020 at 19:06, schulz0r notifications@github.com wrote:

Hello, CMake fails because Ipopt is not installed on your system. As you can see, it is marked with the keyword REQUIRED. That means, if it is not available, CMake will throw an error and the project file will not be generated. Usually, I don’t add install scripts for every single dependency, especially if it is widely available, i.e. Ipopt or Eigen3. When CMake demands a package, you have to install it and try "cmake ..“ again. A quick search revealed that the package coinor-libipopt-dev is available for Ubuntu. I suggest to install this.

Adolc should work even if CMake spits out an error, because it is not marked with REQUIRED. The CMake file first checks if Adolc is already installed on the system, but it is apparently is not. Thus, it warns you that it is not available. As a result, CMake will employ CMake-lists-adolc.txt.in to automatically add it to the project. Maybe I should have added a warning to clarify that it is not an issue. Installing Ipopt is all you need to do for now. I will move to another location this weekend so I am busy. I won’t have access to the internet until Wednesday, but you should be able to start fixing most of the project after installing Ipopt. I will take care of Colpack when I am available again.

Regards

Philipp

Am 24.07.2020 um 18:12 schrieb vmbecerra notifications@github.com:

Dear Philipp

Many thanks for the push request, which I have accepted and therefore have now incorporated your updates into the 'eigen3' branch.

I have also cloned that branch to my local Ubuntu installation, installed Eigen3 using the CMake process, created the build folder under the PSOPT/eigen3 clone, moved there and tried the command 'cmake ..'.

Some errors were reported regarding the absence of Ipopt and Adolc. I am copying below what came out:

victor@ubuntu:~/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build$ cmake .. -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Checking for module 'adolc' -- No package 'adolc' found -- Checking for module 'ipopt' -- No package 'ipopt' found CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal) CMakeLists.txt:9 (pkg_check_modules)

-- Configuring incomplete, errors occurred! See also

"/home/victor/Tresors/PSOPT-GitHub-Clones/psopt-eigen3/build/CMakeFiles/CMakeOutput.log".

I had a look at the file CMake-lists-adolc.txt.in and I noted that you don't seem to be configuring Adol-c to be using the package ColPack, which is one of the requirements for getting Adol-c to work with sparse derivatives. Perhaps the installation of ColPack and Ipopt need to be added as well as additional packages that need to be configured/installed if they are not detected.

I noted also that although you included instructions to build adol-c if it is not found, these do not seem to have been considered when I tried the command 'cmake ..'

I guess we will need to interact a bit to get things working, but it will be worthwhile.

Apologies, I am still a beginner with Cmake but I will learn.

Best regards

Victor.

On Fri, 24 Jul 2020 at 10:55, schulz0r notifications@github.com wrote:

Hello, After we agreed that dmatrix and its dependencies are hard to integrate into a modern build system such as CMake, I removed dmatrix from this project. The PSOPT code has then been moved to the root directory and can now generate a project. Just create a directory build/, then do

cd build/ cmake ..

This will create a Makefile project. Check this https://cmake.org/cmake/help/v3.18/manual/cmake-generators.7.html site if you want to generate a Visual Studio project (cmake -G "Visual Studio 15 2017" ..) or others. Optionally, you can pass the option -DBUILD_EXAMPLES=ON in the command line. This will create the examples in the examples/ directory. So, here is what I usually do: cmake -G Xcode -DBUILD_EXAMPLES=ON ...

Don't forget to install Eigen3 on your system before generating the project. This should be available in every package manager out there. When you are done, you will have a project file in the build/ directory. Open that with the IDE of your choice and hit the compile button. The generated project won't compile because dmatrix is missing. Now, the bugs must be resolved by changing all dmatrices with Eigen::Matrix and other things to do. The Snopt-interface has not been altered until now, but feel free to ask me whenever it seems necessary. I hope that this work will help you with modernizing PSOPT.

Edit: Sorry, the first PR did not address the eigen3 branch, so here I try again.

Best regards

Philipp Waxweiler

You can view, comment on, or merge this pull request online at:

https://github.com/PSOPT/psopt/pull/15 Commit Summary

  • initial CMake files
  • adolc is automatically added to this project in case it is not installed on the disk
  • do not include when using MacOS X because header is unknown to that environment
  • added f2c header from dmatrix library so that fortran types are recognized
  • min() was not defined, changed to std::min
  • added include directories for adolc. adolc header does not compile when c++11 flag has not been set, so flag was explicitly added
  • added IPOPT header so that Ipopt::ApplicationReturnStatus::Solve_Succeeded is defined
  • ipopt is now correctly added to the project
  • removed empty class declarations for DMatrix and its sparse equivalent
  • now sparse option is enabled for adolc
  • added options to build docs and examples
  • added executables for each example
  • sparse matrix class has been moved to its own file
  • added implementation for matrix functions which have been deprived of default arguments
  • removed code from sparse matrix
  • moved the last chunk of sparse matrix code to sparsematrix.cxx
  • added suite sparse and lusol to project
  • added sparse matrix header
  • removed dmatrix to make place for Eigen3
  • added option to include examples. fixed example cmake lists
  • deleted invalid cmake files and Makefiles

File Changes

(1)

(15)

(44)

(199)

(92)

(199)

(33)

(31)

(533)

(55)

(68)

(11)

(20)

(11)

(20)

(11)

(21)

(11)

(21)

(11)

(23)

(11)

(21)

(11)

(21)

(10)

(16)

(11)

(21)

(11)

(20)

(11)

(24)

(11)

(22)

(11)

(24)

(11)

(21)

(11)

(20)

(11)

(24)

(11)

(21)

(11)

(22)

(11)

(21)

(11)

(23)

(11)

(20)

(11)

(20)

(11)

(20)

(11)

(24)

(11)

(20)

(11)

(17)

(11)

(23)

(11)

(21)

(11)

(24)

(11)

(22)

(11)

(24)

(11)

(24)

(11)

(22)

(11)

(23)

(11)

(24)

(11)

(21)

(11)

(20)

(11)

(22)

(11)

(21)

(11)

(23)

(11)

(24)

(11)

(21)

(51)

(60)

(460)

(31)

(0)

(63)

(0)

(307)

(7012)

(50)

(101)

(50)

(72)

(59)

(0)

(1168)

(800)

(0)

(265)

(50)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(8)

(118)

(133)

(106)

(116)

(91)

(139)

(112)

(82)

(106)

(118)

(91)

(151)

(100)

(88)

(118)

(175)

(109)

(85)

(82)

(85)

(433)

(409)

(128)

(57)

(0)

(0)

(0)

(51)

(64)

(52)

(66)

(50)

(62)

(53)

(68)

(51)

(64)

(50)

(62)

(50)

(62)

(54)

(70)

(74)

(110)

(57)

(76)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(59)

(55)

(72)

(0)

(19)

(17)

(5325)

(58)

(34)

(445)

(13)

(1)

(861)

(76)

(27)

(32)

(22)

(37)

(27)

(22)

(22)

(42)

(142)

(57)

(47)

(7)

(76)

(78)

(130)

(26)

(24)

(38)

(174)

(29)

(1417)

(2517)

(223)

(49)

(61)

(9481)

(0)

(0)

(88)

(15)

(660)

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX-all-non-framework-target-headers.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-5889ca61cb08e02b48f721c180f4ad02

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX-all-target-headers.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-147b3ee20f2c18506e93c30f7065646c

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX-generated-files.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-95367937677c886bf86bad9f18b7e81f

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX-own-target-headers.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-3cc088a3f4d2fb7b3d5a682babb36fa8

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX-project-headers.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-3e5ffa66b4b264ac6942e67a52f3c1c7

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/CompilerIdCXX.hmap < https://github.com/PSOPT/psopt/pull/15/files#diff-f727919ce001cb8015cb76d6c351705b

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/Objects-normal/x86_64/CMakeCXXCompilerId.d < https://github.com/PSOPT/psopt/pull/15/files#diff-68170bad27f905c8f23eafa294988748

(2)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/Objects-normal/x86_64/CMakeCXXCompilerId.dia < https://github.com/PSOPT/psopt/pull/15/files#diff-23cc380ba1e3040b2d70b862b2feaaba

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/Objects-normal/x86_64/CompilerIdCXX.LinkFileList < https://github.com/PSOPT/psopt/pull/15/files#diff-cd4022d3e996cbfcc34e74d58efd7603

(1)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/Objects-normal/x86_64/CompilerIdCXX_dependency_info.dat < https://github.com/PSOPT/psopt/pull/15/files#diff-0ce5473728924e9342891bf8442a31ce

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/Script-2C8FEB8E15DC1A1A00E56A5D.sh < https://github.com/PSOPT/psopt/pull/15/files#diff-bc47e3de35cd29591c560c6590224da6

(2)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.build/Debug/CompilerIdCXX.build/all-product-headers.yaml < https://github.com/PSOPT/psopt/pull/15/files#diff-e5538295c1fd32fd9083470b77004418

(1)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/CompilerIdCXX.xcodeproj/project.pbxproj < https://github.com/PSOPT/psopt/pull/15/files#diff-e757675fa977a5d9f2d3b7df056bc87c

(113)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/XCBuildData/BuildDescriptionCacheIndex-5b7f4da6c739b1aa859fd167c37a6781 < https://github.com/PSOPT/psopt/pull/15/files#diff-e3d7782291e4ba1a5e2793a928e78e58

(0)

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/XCBuildData/eea9247203afa8d296fcadb07eed2742-desc.xcbuild < https://github.com/PSOPT/psopt/pull/15/files#diff-f2e54c2c6b82f194265ed6072c558042

(0)

  • A

examples/CMakeFiles/3.17.3/CompilerIdCXX/XCBuildData/eea9247203afa8d296fcadb07eed2742-manifest.xcbuild < https://github.com/PSOPT/psopt/pull/15/files#diff-f5671a71197c0bf0dac8a811a0e7e26b

(58)

(135)

(258)

(2)

(1)

(18)

(44)

(47)

(5)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(5)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(5)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(5)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(5)

Patch Links:

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PSOPT/psopt/pull/15, or unsubscribe < https://github.com/notifications/unsubscribe-auth/ADGCMBMKAGGNNMMFMFWONNTR5FLCBANCNFSM4PGR25ZQ

.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/PSOPT/psopt/pull/15#issuecomment-663615184>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AC7OZDXOPGFG2M2FMR3F6VLR5GXF3ANCNFSM4PGR25ZQ .

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/PSOPT/psopt/pull/15#issuecomment-663664673, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGCMBPIBJ47UZRSF7U2SGDR5HETRANCNFSM4PGR25ZQ .