-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
small updates to nls, sls and hsl_mc68
- Loading branch information
1 parent
81fe43c
commit 603b07e
Showing
13 changed files
with
169 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,13 +4,93 @@ Matlab interfaces are now available to a growing number of GALAHAD packages | |
--------- | ||
For LINUX | ||
--------- | ||
............................ | ||
MATLAB for R2022a and later | ||
............................ | ||
|
||
For MATLAB R2011a and above, GALAHAD must be installed using the | ||
gfortran compiler. BUT ... you will need to use (and have installed) | ||
gcc/gfortran-10, not the more modern version (11 and above) that may | ||
comes as default with today's Linux. For Ubuntu Linux, see | ||
|
||
https://help.ubuntu.com/community/MATLAB | ||
|
||
for details on how to download packaged versions of the relevant | ||
outdated compilers. For other Linux distributions, you might have | ||
to build gcc-10 from source code. Grumble to the Mathworks! | ||
|
||
Once you have a working gcc/gfortran-10 - making sure that they are | ||
both on your shell search path - either select the "install with Matlab" | ||
option when installing, or if a gfortran version has already been installed, | ||
issue the commands | ||
|
||
cd $GALAHAD/src/matlab | ||
make -s -f $GALAHAD/makefiles/pc64.lnx.gfo | ||
|
||
(substitute pc.lnx.gfo for the appropriate string on non-Linux or 32-bit | ||
machines, e.g pc.lnx.gfo). | ||
|
||
N.B. the MATLAB environment variable must point to your system matlab directory. | ||
|
||
Once the Matlab versions have been installed, make sure that | ||
$GALAHAD/src/matlab is on your Matlab path. | ||
|
||
Issue the commands | ||
|
||
help galahad | ||
|
||
within Matlab to find the current status of available interfaces. | ||
|
||
Note that at present there is no single-precision version. | ||
|
||
........................ | ||
MATLAB for R2020b-2021b | ||
........................ | ||
|
||
As for MATLAB for R2022a, but you will need gfortran/gcc-8 not 10. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -8. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
......................... | ||
MATLAB for R2018a-R2020a | ||
......................... | ||
|
||
As for MATLAB for R2022a, but you will need gfortran/gcc-6 not 10. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -6. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
........................ | ||
MATLAB for R2016b-R2017b | ||
......................... | ||
|
||
As for MATLAB for R2022a, but you will need gfortran/gcc-4.9 not 10 | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -4.9. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
........................ | ||
MATLAB for R2013b-R2016a | ||
......................... | ||
|
||
As for MATLAB for R2022a, but you will need gfortran/gcc-4.7 not 10. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -4.7. This should have been taken care of automatically | ||
|
||
........................ | ||
MATLAB for R2011a-R2013a | ||
......................... | ||
As for MATLAB for R2022a, but you will need gfortran/gcc-4.4 not 10. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -4.4. | ||
|
||
.................... | ||
MATLAB before R2011a | ||
.................... | ||
|
||
To use the Matlab interfaces, GALAHAD must be installed using the | ||
g95 compiler - other compilers may become available in the future | ||
g95 compiler - other compilers have become available since then. | ||
if Matlab's mex facility becomes more fortran-90 friendly. Either | ||
select the "install with Matlab" option when installing, or if | ||
a g95 version has already been installed, issue the commands | ||
|
@@ -40,15 +120,6 @@ $GALAHAD/makefiles/pc64.lnx.g95, and to the FFLAGS variable in your Matlab | |
mexopts.sh file (in the relevant release subdirectory of the .matlab directory | ||
in your home directory). | ||
|
||
........................ | ||
MATLAB for R2011a-R2013a | ||
......................... | ||
|
||
For MATLAB R2011a and above, GALAHAD must be installed using the | ||
gfortran compiler. BUT ... you will need to use (and have installed) | ||
gcc/gfortran-4.4, not the more modern version (4.5 and above) that comes | ||
as default with today's Linux. For Ubuntu Linux, see | ||
|
||
https://help.ubuntu.com/community/MATLAB | ||
|
||
for details on how to download packaged versions of the relevant | ||
|
@@ -77,43 +148,6 @@ $GALAHAD/src/matlab is on your Matlab path. | |
|
||
to find the current status of available interfaces. | ||
|
||
........................ | ||
MATLAB for R2013b-R2016a | ||
......................... | ||
|
||
As for MATLAB for R2011a-R2013a, but you will need gfortran/gcc-4.7 not 4.4. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -4.7. | ||
|
||
........................ | ||
MATLAB for R2016b-R2017b | ||
......................... | ||
|
||
As for MATLAB for R2011a-R2013a, but you will need gfortran/gcc-4.9 not 4.4. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -4.9. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
......................... | ||
MATLAB for R2018a-R2020a | ||
......................... | ||
|
||
As for MATLAB for R2011a-R2013a, but you will need gfortran/gcc-6 not 4.4. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -6. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
............................ | ||
MATLAB for R2020b and above | ||
............................ | ||
|
||
As for MATLAB for R2011a-R2013a, but you will need gfortran/gcc-8 not 4.4. | ||
Edit $GALAHAD/makefiles/pc64.lnx.gfo to check that all mentions of gfortran/gcc | ||
have the trailing -8. This should have been taken care of automatically | ||
during the installation process. | ||
|
||
Note that at present there is no single-precision version. | ||
|
||
........................... | ||
Replacement BLAS and LAPACK | ||
........................... | ||
|
@@ -137,7 +171,7 @@ than the dynamic -l* syntax. | |
For MAC OS X | ||
------------ | ||
|
||
Here, the supported compiler is GNU gfortran. So | ||
Here, the supported compiler used to be GNU gfortran. So | ||
|
||
cd $GALAHAD/src/matlab | ||
make -s -f $GALAHAD/makefiles/pc.lnx.gfo | ||
|
@@ -164,16 +198,18 @@ interface. | |
The dreaded "MATLAB Error: Cannot load any more object with static TLS" bug | ||
--------------------------------------------------------------------------- | ||
|
||
For a number of years, the Mathworks have been aware of a serious mex bug. | ||
MATLAB dynamically loads some libraries with static TLS (thread local storage, | ||
For a number of years, the Mathworks were aware of a serious mex bug. | ||
MATLAB dynamically loaded some libraries with static TLS (thread local storage, | ||
e.g. see gcc compiler flag -ftls-model). Loading too many such libs eventually | ||
leaaves no space left. The Mathworks solution is a farcical work-around | ||
leaaves no space left. The Mathworks solution was a farcical work-around | ||
that involves inserting the line "ones(10)*ones(10);" in startup.m, that | ||
aims to load "important" libraries first. Of late, this "solution" seems | ||
increasigly less likley to work, but Mathworks appears not to care about | ||
its significant mex user base by failing to provide a proper fix. | ||
increasigly less likley to work, but Mathworks appeared not to care about | ||
its significant mex user base by failing to provide a proper fix. Fortunately | ||
sanity has broken out, and you are only likely to see this with older | ||
versions of Matlab. | ||
|
||
The most successful temporary "cure" we have found is to compile the | ||
The most successful temporary "cure" we found was to compile the | ||
Matlab programs as usual, to issue the command | ||
|
||
ldd $GALAHAD/src/matlab/galahad_wcp.mexa64 | ||
|
@@ -221,6 +257,8 @@ for the discussion and tip | |
Nick Gould ([email protected]) | ||
Dominique Orban ([email protected]) | ||
Philippe Toint ([email protected]) | ||
Jari Fowkes ([email protected]) | ||
Alexis Montoison ([email protected]) | ||
|
||
For GALAHAD productions | ||
This version: 12th November 2020 | ||
This version: 24th May 2024 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.