#!/usr/bin/env ruby
# Turn on warnings
$-w = true

require 'irb/xmp'
require 'gsl'

# Apparently, IRB::Frame has a bug that prevents the defaults from working, so
# an XMP instance must be created explicitly this way instead of using the
# otherwise convenient xmp method.
XMP.new(IRB::Frame.top(-1)).puts <<END
# Create a 2x2 Matrix::Int and a 2x3 Matrix::Int
a = GSL::Matrix::Int[1..4, 2, 2]
b = GSL::Matrix::Int[5..10, 2, 3]

# Concatenate them horizontally using Matrix::Int#horzcat
a.horzcat(b)

# Concatenate them horizontally using Matrix::Int.horzcat
GSL::Matrix::Int.horzcat(a, b)

# Create a 2x2 Matrix::Int and a 3x2 Matrix::Int
a = GSL::Matrix::Int[1..4, 2, 2]
b = GSL::Matrix::Int[5..10, 3, 2]

# Concatenate them vertically using Matrix::Int#vertcat
a.vertcat(b)

# Concatenate them vertically using Matrix::Int.vertcat
GSL::Matrix::Int.vertcat(a, b)
END