You're right, the translation is not linear, (it's linear on the [x, y, z,
1] vector that we often use with affine transforms, but that's obviously
not the relevant way of thinking about it)

maybe lin would be a better name.
On Oct 9, 2013 10:43 AM, "Emmanuel Caruyer" <notifications@github.com>
wrote:

> In dipy/tracking/utils.py:
>
> > +    Parameters
> > +    ----------
> > +    affine : array_like (4, 4)
> > +        The mapping to use, can be None
> > +    voxel_size : array_like (3,)
> > +        If the affine is not None, `voxel_size` is ignored, otherwise the
> > +        the mapping is assumed to be in trk space. IE the corners of the image
> > +        are ``[0, 0, 0]`` and ``voxel_size * dim``.
> > +
> > +    If both are None, then coordinates are taken to be nifti-style voxel
> > +    indices. IE [0, 0, 0] is the center of the first voxel.
> > +
> > +    Return
> > +    ------
> > +    rot : array (3, 3)
> > +        Transpose of the rotational part of the mapping. (ie ``affine[:3, :3].T``)
>
> I do agree that as a private function, the doc is probably not critical.
> Multiplicative part sounds good to me. BTW, how do you define a linear
> transform? To me it's something verifying for any two vetors u and v,
> f(u+v) = f(u) + f(v), and for any scalar a, f(a u) = a f(u). This second
> property is not true for a translation, right?
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/nipy/dipy/pull/250/files#r6863520>
> .
>