// interface
public override void applyBeforeApplying(IOperator o)
{
TridiagonalOperator L = o as TridiagonalOperator;
switch (side_)
{
case Side.Lower:
L.setFirstRow(-1.0, 1.0);
break;
case Side.Upper:
L.setLastRow(-1.0, 1.0);
break;
default:
throw new ArgumentException("unknown side for Neumann boundary condition");
}
}