First commit.

cvx.R: CVX objects class
cvxfun.R: CVX functions and DCP rules class
aux_functions.R: auxiliary methods
cvx_tests.R: tests

Signed-off-by: Chamon <[luizchamon] [gmail]>
CVX functions now work with an arbitrary number of arguments. DCP rule sets must be consistent with the number of formals of the function in order to be added. DCP rule checks also take an arbitrary number of arguments.

Testbeds were updated to match these new functionalities.

Signed-off-by: Chamon <[luizchamon] [gmail]>
Fixes to DCP rule checks. Migrated the testbed to use the testthat package. Separated tests in a different folder.

Signed-off-by: Chamon <[luizchamon] [gmail]>
- New built in functions: * and +
- R does not support dispatching on separate arguments, so functions are now only of cvxfun class and objects are of class cvx
- Curvature and monotonicity are no longer of cvx class. They are only cvx_curvature and cvx_monotonicity
- Updated tests

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Fixed an issue in DCP check with unsupported comparisons that returned logical(0) (e.g., cvx > 0)
- Updated the DCP rules on built in functions to use & instead of &&
- Updated test_mul.R
- New built in function: -
- New test suite for subtraction

Signed-off-by: Chamon <[luizchamon] [gmail]>
- New is.whole() auxiliary function;
- New norm, ^, and quad_over_linear atoms;

TODO: a lot of problems still appear because (i) there is still no comparisons implemented for CVX objects (or range for that matter) and (ii) the dcpcheck returns horribly misleading messages in some cases!

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Implemented quad_over_lin;
- Removed dimension checks from addition, multiplication, and subtraction for the time being (updated the respective tests);
- New class cvxprob of CVX problems;
- Tests of class cvxprob.

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Major changes in cvx, cvxfun, and cvxprob classes;
- New cvxset class and %in% operator;
- Canonicalization of CVX problems: linearize, add slacks...
- Some file renaming, changes of functions in files, and minor updates here and there.

Signed-off-by: Chamon <[luizchamon] [gmail]>
Fixed bug due to redefining %in%.

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Accept cones without specifying dimensions
- Canonicalization of cvxprob: graph implementation, fixes in the linearization, fixes in the canonicalization of RHS
- New definition of cvxprob: cones are no longer used
- New functions to attribute (<-) cones and constraints
- Add epigraph implementation support to cvxfun
- Add graph implementations to built in functions

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Fix atomization issue where the same variable would appear in different nonlinearities
- New get_environment() function to retrieve the environment where the CVX problem was created
- Transfered variable retrieving and renaming functions to utils.R
- Stub and outline for the solve functions

Signed-off-by: Chamon <[luizchamon] [gmail]>
- Small fixes in printing a CVX problem constraints;
- Included an equalities() function to get equality constraints;
- Created a function to retrieve the coefficient of a variable in some expression.

Signed-off-by: Chamon <[luizchamon] [gmail]>