Skip to content

Instantly share code, notes, and snippets.

@mattmcd
mattmcd / printargs.cpp
Created Mar 23, 2013
C++11 program to print input arguments on separate lines.
View printargs.cpp
#include <iostream>
#include <vector>
#include <string>
int main(int argc, char* argv[])
{
std::vector<std::string> args(argc);
args.assign( argv, argv+argc);
for( const auto arg : args ) std::cout << arg << std::endl;
@mattmcd
mattmcd / printargs.scala
Last active Dec 15, 2015
Scala program to print input arguments on separate lines.
View printargs.scala
for( arg <- args ) println( arg )
@mattmcd
mattmcd / const_forms.cpp
Created Mar 25, 2013
Examples of the different uses of const in C++
View const_forms.cpp
#include <iostream>
#include <vector>
#include <string>
#include <memory>
typedef std::vector<std::string> str_vec;
void print(str_vec const list)
{
for ( auto el : list ) std::cout << el << std::endl;
@mattmcd
mattmcd / HelloEigen.cpp
Last active Dec 15, 2015
Installing and testing Eigen3 linear algebra C++ library.
View HelloEigen.cpp
#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd; // m by n double matrix
int main()
{
// Example from Eigen3 doc
MatrixXd m(2,2);
// Comma initialization, row major order
@mattmcd
mattmcd / Makefile
Created Mar 30, 2013
Identifying FX Arbitrage as a linear programming problem using COIN-OR Linear Program Solver (CLP).
View Makefile
all: fx_solver
fx_solver: fx_solver.cpp
clang++ -std=c++0x -I/usr/include/coin -o fx_solver fx_solver.cpp -lClp
# Install CLP:
# sudo apt-get install coinor-libclp0 coinor-libclp-doc
@mattmcd
mattmcd / gist:5277466
Created Mar 30, 2013
Installing ANTLR 4.0 in TerminalIDE on a Nexus 7
View gist:5277466
1. Modify ~/system/bin/dx to increase memory size:
#dx helper script
dalvikvm -Xms256m -Xmx512m -cp $APK com.spartacusrex.spartacuside.external.dx $@
2. Download [Complete ANTLR 4.0 Java binaries jar](http://www.antlr.org/download/antlr-4.0-complete.jar) and copy to ~/bin. Change to this directory.
3. Convert jar to dex so that it can run on Android (takes about 20mins with power connected):
dx --dex --output=antlr-4.0.dex.jar antlr-4.0-complete.jar
@mattmcd
mattmcd / Expr.g4
Created Mar 30, 2013
ANTLR4 simple expression grammar. Note that left recursion is now allowed and operator precedence is just order of definition.
View Expr.g4
grammar Expr;
// Need to call recursive rule expr from non-recursive rule
r : expr+ ;
// ANTLR4 : Left recursion!
// Operator precedence matches order of definition
expr : '-' expr // Unary minus
| expr ('*' | '/' ) expr
| expr ('+' | '-' ) expr
@mattmcd
mattmcd / saddle_install.txt
Created Apr 7, 2013
Shell history from installing Saddle: Scala Data Library http://saddle.github.io/ A couple of extra steps above the standard install were required in order to update my Java install to Java 7.
View saddle_install.txt
# Change location to where External Code is installed
cd ~/Work/ExternCode/
# Install conscript, a tool for installing and updating Scala software
# programs.
curl https://raw.github.com/n8han/conscript/master/setup.sh > conscript_setup.sh
less conscript_setup.sh
chmod 755 conscript_setup.sh
./conscript_setup.sh
@mattmcd
mattmcd / Hello.g4
Last active Mar 11, 2021
Simple ANTLR4 grammar example
View Hello.g4
// define a grammar called Hello
grammar Hello;
r : 'hello' ID;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
@mattmcd
mattmcd / CFunction.g
Created Apr 21, 2013
ANTLR3 version of Wrapper Generator
View CFunction.g
grammar CFunction;
options {
output = AST;
ASTLabelType = CommonTree;
}
tokens {
SCALAR;
ARRAY;