Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ffp-minvar

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ffp-minvar

rewritten python package of ffp_minvar algorithm

  • 0.1.30
  • PyPI
  • Socket score

Maintainers
1

FFP_MINVAR

Table of Contents

  • Installation
  • Documentation
  • Github Description
  • GSL Download
  • Compilation and Test

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

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc