MS_interpolate

MS_INTERPOLATE - Symmetry preserving elasticity interpolation
Symmetry aware linear interpolation between two elasticity matrices.
[ Cint, RhoInt ] = MS_interpolate( C1, rho1, C2, rho2, frac)
Usage:
    [ Cint, RhoInt ] = MS_interpolate( C1, rho1, C2, rho2, frac)
        Returns an elasticity matrix interpolated frac distance
        between elasticity matricies C1 and C2. Frac = 1 gives
        the elasticity of C1, frac = 0 gives the elasticity of
        C2.
Notes:
    A common approach to the interpolation of elasticity matricies
    is to interpolate elements component-wise. This fails for cases
    where the elasticity matricies are just rotated versions of each
    other. The approach taken here is to first rotate the two matricies
    into a common orientation (the one generated by MS_axes is chosen)
    before interpolating element-wise (Voigt-Reuss-Hill is used). The
    two rotations into the common orientation are then interpolated
    and the interpolated matrix rotated back the the starting
    orientation. Shoemake's (1985) slerp approach is used to interpolate
    the orientations. Rotation matricies are converted to quaternions
    (and back again) using John Fuller's SpinCalc function.
References:
    Shoemake, K (1985) "Animating rotation with quaternion curves" ACM
    SIGGRAPH Computer Graphics vol.19 pp.245-254.
See also: MS_AXES, MS_VRH