FFP_MINVAR
Table of Contents
Installation
To install ffp_minvar, use this command in terminal:
pip3 install ffp_minvar
We assume you are using python >= 3.6
Documentation
To use the library, import the module like following:
from ffp_minvar import ffp_minvar_lib
Function Description
-
-
ffp_minvar_lib.
ffp
(theta, B, V, Delta)
- theta: A K-1 array of np.zeros(K)
- B: An N-K numpy.ndarray
- V: A K-K diagonal matrix as numpy.ndarray. Note that V must be passed in as a diagonal matrix otherwise a ValueError will be raised.
- Delta: An N-1 numpy.ndarray. Contains the diagonal entries of the actual N-N matrix D.
-
-
ffp_minvar_lib.
lo_minvar
(B, V, Delta)
- B: An N-K numpy.ndarray
- V: A K-K diagonal matrix as numpy.ndarray. Note that V must be passed in as a diagonal matrix otherwise a ValueError will be raised.
- Delta: An N-1 numpy.ndarray. Contains the diagonal entries of the actual N-N matrix D.
-
-
ffp_minvar_lib.
psi
(B, V, Delta)
- B: An N-K numpy.ndarray
- V: A K-K diagonal matrix as numpy.ndarray. Note that V must be passed in as a diagonal matrix otherwise a ValueError will be raised.
- Delta: An N-1 numpy.ndarray. Contains the diagonal entries of the actual N-N matrix D.
Examples:
print("------------ ffp Test ------------")
ffp_res = ffp_minvar_lib.ffp(theta, B, V, D)
print(ffp_res)
print("------------ Psi Test ------------")
psi_res = ffp_minvar_lib.psi(B, V, D)
print(psi_res)
print("------------ lo_minvar Test ------------")
lo_minvar_res = ffp_minvar_lib.lo_minvar(B, V, D)
print(lo_minvar_res)
Github Description
lib
folder stores the source python library.
lib/shared
folder stores the .so file used by the python library.
include
folder contains the header file of the algorithm.
src
folder contains the C file of the algorithm, which uses the GSL library from GNU.
obj
folder stores the object file of the compiled C file of the algorithm.
test
folder contains tests in C of the functions of the algorithm.
ffp_minvar.py
is the original version of the algorithm.
test_lib.py
is the test file of the python package.
GSL Download
Note that this part is irrelevant to the installation of ffp_minvar package and is only for the download of GSL library.
OSX
Apparently GSL can be installed through Homebrew via
brew install gsl
though installing it manually is just as simple, which we now describe.
- Download gsl-latest.tar.gz from the GSL ftp site and unzip it anywhere (e.g. /Downloads)
- Open the unzipped
gsl
folder in Terminal (e.g. cd ~/Downloads/gsl-2.4
- Run
sudo ./configure && make && make install
If the above gives a "permission denied" error, instead try
sudo make clean
sudo chown -R $USER .
./configure && make
make install
Ubuntu
sudo apt-get install libgsl-dev
You'll now be able to include GSL into your code from anywhere.
Compilation
Shared
To compile the .so file of the algorithm used by the python package, use this command under root folder.
make alg_lomv.so
PythonTest
To run the test of the python package:
- Compile the .so file
- Make sure that your current python interpreter has installed
numpy
, ctypes
, pdb
, and pathlib
. - Use this command under root folder:
python test_lib.py
CTest
To compile the test of the algorithm in c, use this command under root folder:
make test_alg
./test_alg