const Vector<double>&, const std::vector<unsigned int> &, V1&, const FullMatrix<double>&) const;
template void ConstraintMatrix::distribute<V1 >(const V1 &, V1&) const;
template void ConstraintMatrix::distribute<V1 >(V1 &) const;
-EOT
- ;
-
-my $scalar_vector_functions = <<'EOT'
-
EOT
;
# End of definitions, now come the loops
######################################################################
-foreach my $v (@sequential_vectors)
-{
- my $t = $vector_functions;
- $t =~ s/V1/$v/g;
- print $t;
-
-}
-
-foreach my $r1 (@real_scalars)
-{
- my $t = $scalar_functions;
- $t =~ s/S1/$r1/g;
- print $t;
-
- foreach my $r2 (@real_scalars)
- {
- my $t = $scalar_scalar_functions;
- $t =~ s/S1/$r1/g;
- $t =~ s/S2/$r2/g;
- print $t
- }
-}
+multisubst($vector_functions, ['V1'], \@sequential_vectors);
+multisubst($scalar_functions, ['S1'], \@real_scalars);
+multisubst($scalar_scalar_functions, ['S1','S2'], \@real_scalars, \@real_scalars);