class_docstr: Path described by a (potentially sparse) sequence of points.
  
  Convention of the stored point tuple ``(i, x, v, L)``:
  `i`: index (0 is starting point)
  `x`: point
  `v`: direction
  `L`: loglikelihood value
class_docstr_tok: ["Path","described","by","a","(","potentially","sparse",")","sequence","of","points",".","Convention","of","the","stored","point","tuple","``","(","i",",","x",",","v",",","L",")","``",":","`","i","`",":","index","(","0","is","starting","point",")","`","x","`",":","point","`","v","`",":","direction","`","L","`",":","loglikelihood","value"]
docstr: Add point `xi`, direction `vi` and value `Li` with index `i` to the path.
docstr_tok: ["Add","point","`","xi","`",",","direction","`","vi","`","and","value","`","Li","`","with","index","`","i","`","to","the","path","."]
code: def add(self, i, xi, vi, Li):
      """Add point `xi`, direction `vi` and value `Li` with index `i` to the path."""
      assert Li is not None
      assert len(xi.shape) == 1, (xi, xi.shape)
      assert len(vi.shape) == 1, (vi, vi.shape)
      assert len(np.shape(Li)) == 0, (Li, Li.shape)
      self.points.append((i, xi, vi, Li))
  
imports: import numpy
  from numpy.linalg import norm
  import matplotlib.pyplot
label_desc: Use image node_id 2 for calling the SamplingPath obj's underlying member method code with example usage: obj.add(i, xi, vi, Li) without return types