# Generate geodesic path.

### Description

Generate geodesic path.

### Usage

1 | ```
geodesic_path(current, target, frozen)
``` |

### Arguments

`new_target_f` |
function that generates new frame, with previous frame as argument |

### Details

Wrap basis generation method with a function that keeps computes the geodesic interpolation from the previous frame to the next frame, and provides convenient access to all the information about the path.

Frozen variables allow us to keep certain values of the projection fixed and generate a geodesic across the subspace generated by those

### Value

`interpolate` |
A function with single parameter in [0, 1] that returns an interpolated frame between the current and future frames. 0 gives the current plane, 1 gives the new target frame in plane of current frame. |

`dist` |
The distance, in radians, between the current and target frames. |

`Fa` |
The current frame. |

`Fz` |
The new target frame. |

`tau` |
The principle angles between the current and target frames. |

`Ga` |
The current plane. |

`Gz` |
The target plane. |

### Examples

1 2 3 4 5 6 7 8 | ```
a <- basis_random(4, 2)
b <- basis_random(4, 2)
path <- geodesic_path(a, b)
path$dist
all.equal(a, path$interpolate(0))
# Not true generally - a rotated into plane of b
all.equal(b, path$interpolate(1))
``` |