Skip to main content

rewritten python package of ffp_minvar algorithm

Project description

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:

#------------ ffp Test --------------#
print("------------ ffp Test ------------")
ffp_res = ffp_minvar_lib.ffp(theta, B, V, D)  
print(ffp_res)

#------------ Psi Test --------------#
print("------------ Psi Test ------------")
psi_res = ffp_minvar_lib.psi(B, V, D)  
print(psi_res)

#---------- lo_minvar Test ----------#
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:

  1. Compile the .so file
  2. Make sure that your current python interpreter has installed numpy, ctypes, pdb, and pathlib.
  3. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ffp_minvar-0.1.30.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

ffp_minvar-0.1.30-cp39-cp39-macosx_10_15_x86_64.whl (38.5 kB view hashes)

Uploaded CPython 3.9 macOS 10.15+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page