Skip to content

This project provides a wrapper program of Python for ACE algorithm implementation of Fortran.

License

Notifications You must be signed in to change notification settings

zhaofeng-shu33/ace_cream

Repository files navigation

Alternating Conditional Expectation Algorithm

Build Status PyPI Windows

This project provides a wrapper program of Python for ACE algorithm implementation of Fortran.

Install Binary Distribution

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

How to build

You need numpy and fortran compiler to build from source.

Windows

  • 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 (make gfortran accessible from command line).

    • (for conda environment) Add {install_dir}\Anaconda3\Scripts to environment variable (make f2py accessible from command line).

Mac

You can use package manager to install gfortran (included within gnu compiler collection). For example, with Homebrew you can use

brew install gcc

Ubuntu

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.

How to use

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)

Result

image

change log

  1. v0.1 initial commit
  2. v0.2 modify to relative import in __init__.py
  3. v0.3 add support for multiple columns of x and other directions of transformation
  4. v0.4 add f_mapping function and unittests for this function

License

Apache License Version 2.0

Reference

  1. https://en.wikipedia.org/wiki/Alternating_conditional_expectations

About

This project provides a wrapper program of Python for ACE algorithm implementation of Fortran.

Resources

License

Stars

Watchers

Forks

Packages

No packages published