- s: single-precision real (float)
- d: double-precision real (double)
- c: single-precision complex (complex_float)
- z: double-precision complex (complex_double)

- double
*start*: the first grid point - double
*end*: the last grid point - int
*num*: the number of grid points

Type | Name | Description |

bc_code | lCode | "left" boundary condition code |

bc_code | lCode | "right" boundary condition code |

d_type | lVal | "left" boundary condition value |

d_type | rVal | "right" boundary condition value |

Type | Name | Description |

bc_code | lCode | "left" boundary condition code |

bc_code | lCode | "right" boundary condition code |

d_type | lVal_r | "left" boundary condition real part |

d_type | lVal_i | "left" boundary condition imag part |

d_type | rVal_r | "right" boundary condition real part |

d_type | rVal_i | "right" boundary condition imag part |

lCode and lVal specify the boundary conditions at the first grid point (the "left" boundary), while rCode and rVal specify the boundary conditions on the last grid point (the "right" boundary).

bc_code is one of the enumerated value, {PERIODIC, DERIV1, DERIV2, FLAT, NATURAL, ANTIPERIODIC }.

d_type is the the C type corresponding to {s, d, c, z}, i.e. {float, double, complex_float, complex_double}

The codes have the following meaning

Code | Meaning |

PERIODIC | Use periodic boundary conditions. The value, first derivative and second derivative at the left boundary match those at the right boundary. |

DERIV1 | The value of the first derivative is specified in lVal or rVal. |

DERIV2 | The value of the second derivative is specified in lVal or rVal. |

FLAT | The value of the first derivative is set to zero at the boundary. |

NATURAL | The value of the second derivative is set to zero at the boundary. |

ANTIPERIODIC | Use anti-periodic boundary conditions. The value, first derivative and second derivative at the left boundary are the negative of those at the right boundary. |