This README describes the steps to compile and run the code, as well as to use wrappers for MATLAB and Python.
This project implements algorithms for the computation of the proximal operator of induced l1 matrix norms (a.k.a., mixed l1,oo norm). A preprint describing the method can be found at:
B. Béjar, Ivan Dokmanić, and René Vidal. The fastest L1oo in the west.
1.0
C programs -- See main() function in prox_ind_l1_norm.c
MATLAB
- Inside mex_prox_ind_l1_norm.c uncomment the line corresponding to the implementation you would like to run (e.g., column sort)
...
prox_l1_norm_column_sort(X,V,*lambda);
//prox_l1_norm_active_set(X,V,*lambda);
...
- Inside MATLAB's command window type:
mex -output prox_l1_column_sort mex_prox_ind_l1_norm.c
- Run it
LAMBDA = 1; V = randn(5); X = prox_l1_column_sort(V,LAMBDA);
Python
- Compile source C code into a dynamic library:
gcc -fPIC -shared -o libprox.so prox_ind_l1_norm.c
- Run and see prox_ind_l1_norm.py for an example of how to use.