FLIRT schedule language reference


This document describes the commands that can be used within a schedule file for flirt via the -schedule option.


VARIABLES

There are two types of data variables that are manipulated in a schedule file: scalar and matrix data.

Scalar data

Any constant can be used as a scalar value in the schedule file. In addition token names can be used, and the following token names are currently defined:

Matrix data

Most data in a schedule file is manipulated in matrix form. Each matrix has 17 columns, with the first column representing the cost function value and the remaining 16 a reshaped version of the 4 by 4 affine matrix that corresponds to that cost function measurement. (paragraph: The matrices that can be accessed are: S P U UA UB ... UZ.
Note that S P and U have special functions while UA UB ... UZ are provided for user manipulation. ) (paragraph: In addition, a subset of rows of a given matrix can be used in place of any matrix.
The form of this reference is: mat:r1-r2
where mat is the matrix name (e.g. UB), r1 is the first row, and r2 the last row to be used. Note that some parts of this may be omitted so that mat:r1- specifies the matrix from row r1 to the end, and mat:r1 just specifies a single row ( r1).
NB: The first row of any matrix has an index of 1. ) (paragraph: Matrix U is special as it is used to store the results of the current optimisation. ) (paragraph: Matrices S and P are used to store the (corresponding) results of the 8mm search algorithm. )

COMMANDS


EXAMPLE

The default flirt schedule file is:
# 8mm scale
setscale 8
clear S
clear P
search


# 4mm scale
setscale 4
clear U
clear UA 
clear UB
clear US
clear UP

# remeasure costs at this scale
measurecost 7 S 0 0 0 0 0 0 rel
copy U US
clear U
measurecost 7 P 0 0 0 0 0 0 rel
copy U UP
dualsort US UP

# optimise best 3 candidates (pre and post 8mm optimisations)
clear U
optimise 7 US:1-3  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UP:1-3  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 4
sort U
copy U UA

# select best 3 optimised solutions and try perturbations of these
clear U
copy UA:1-3 U
optimise 7 UA:1-3  1.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3 -1.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3  0.0   1.0   0.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3  0.0  -1.0   0.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3  0.0   0.0   1.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3  0.0   0.0  -1.0   0.0   0.0   0.0   0.0  rel 4
optimise 7 UA:1-3  0.0   0.0   0.0   0.0   0.0   0.0   0.1  abs 4
optimise 7 UA:1-3  0.0   0.0   0.0   0.0   0.0   0.0  -0.1  abs 4
optimise 7 UA:1-3  0.0   0.0   0.0   0.0   0.0   0.0   0.2  abs 4
optimise 7 UA:1-3  0.0   0.0   0.0   0.0   0.0   0.0  -0.2  abs 4
sort U
copy U UB


# 2mm scale
setscale 2
clear U
clear UC
clear UD
clear UE
clear UF

# remeasure costs at this scale
measurecost 7 UB 0 0 0 0 0 0 rel
sort U
copy U UC

clear U
optimise 7  UC:1  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 4
copy U UD
if MAXDOF > 7
 clear U
if MAXDOF > 7
 optimise 9  UD:1  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 1
copy U UE
if MAXDOF > 9
 clear U
if MAXDOF > 9
 optimise 12 UE:1  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 2
sort U
copy U UF

# 1mm scale
setscale 1
clear U
optimise 12 UF:1  0.0   0.0   0.0   0.0   0.0   0.0   0.0  rel 1
sort U

Mark Jenkinson

Copyright © 2000, University of Oxford