This project provides a wrapper program of Python for ACE algorithm implementation of Fortran.
Currently, only 64-bit binary distribution is provided.
Run pip install ace_cream
to install the binary distribution.
Platform | py3.6 | py3.7 | py2.7 |
---|---|---|---|
Windows | T | T | T |
MacOS | T | T | |
Linux | T | T | T |
You need numpy
and fortran compiler to build from source.
-
Install Visual C++ toolchain.
-
Download MinGW-w64 from sourceforge, which provides the necessary fortran compiler
-
Install MinGW-w64 and add
{install_dir}\mingw64\bin
path to environment variable (makegfortran
accessible from command line).- (for conda environment) Add
{install_dir}\Anaconda3\Scripts
to environment variable (makef2py
accessible from command line).
- (for conda environment) Add
You can use package manager to install gfortran
(included within gnu compiler collection). For example, with Homebrew
you can use
brew install gcc
To install gfortran
, use the default package manager:
sudo apt-get install gfortran
Run python setup.py install
from command line at the project root directory.
import numpy as np
from ace_cream import ace_cream
# discrete case, binary symmetric channel with crossover probability 0.1
x = np.random.choice([0,1], size=N_SIZE)
n = np.random.choice([0,1], size=N_SIZE, p=[0.9, 0.1])
y = np.mod(x + n, 2)
# set both x(cat=0) and y(cat=-1) as categorical type
tx, ty = ace_cream(x, y, cat=[-1,0])
# continuous case
x = np.random.uniform(0, np.pi, 200)
y = np.exp(np.sin(x)+np.random.normal(size=200)/2)
tx, ty = ace_cream(x, y)
- v0.1 initial commit
- v0.2 modify to relative import in
__init__.py
- v0.3 add support for multiple columns of x and other directions of transformation
- v0.4 add
f_mapping
function and unittests for this function
Apache License Version 2.0