Metadata-Version: 1.1
Name: ace_cream
Version: 0.4.post10
Summary: Alternating Conditional Expectation Algorithm
Home-page: https://github.com/zhaofeng-shu33/ace_cream
Author: zhaofeng-shu33
Author-email: 616545598@qq.com
License: Apache License Version 2.0
Description: # Alternating Conditional Expectation Algorithm
        [![Build Status](https://travis-ci.org/zhaofeng-shu33/ace_cream.svg?branch=master)](https://travis-ci.org/zhaofeng-shu33/ace_cream)
        [![PyPI](https://img.shields.io/pypi/v/ace_cream.svg)](https://pypi.org/project/ace_cream)
        [![Windows](https://ci.appveyor.com/api/projects/status/github/zhaofeng-shu33/ace_cream?branch=master&svg=true)](https://ci.appveyor.com/project/zhaofeng-shu33/ace_cream)
        
        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++](https://blogs.msdn.microsoft.com/vcblog/2017/03/07/msvc-the-best-choice-for-windows/) toolchain.
        
        * Download MinGW-w64 from [sourceforge](https://sourceforge.net/projects/mingw-w64/files/latest/download?source=typ_redirect), 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
        
        ```shell
        brew install gcc
        ```
        
        ### Ubuntu
        
        To install `gfortran`, use the default package manager:
        
        ```shell
        sudo apt-get install gfortran
        ```
        
        Run `python setup.py install` from command line at the project root directory.
        
        ## How to use
        
        ```Python
        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](./example/continuous.svg)
        
        ## change log
        1. v0.1 initial commit
        1. v0.2 modify to relative import in `__init__.py`
        1. v0.3 add support for multiple columns of x and other directions of transformation
        1. 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](https://en.wikipedia.org/wiki/Alternating_conditional_expectations)
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Fortran
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 2.7
Classifier: Operating System :: OS Independent
