class_docstr: A kernel class. 
class_docstr_tok: ["A","kernel","class","."]
docstr: Evaluates kernel values between X1 and X2 and returns an n1xn2 kernel matrix.
  This is a wrapper for _child_evaluate.
docstr_tok: ["Evaluates","kernel","values","between","X1","and","X2","and","returns","an","n1xn2","kernel","matrix",".","This","is","a","wrapper","for","_child_evaluate","."]
code: def evaluate(self, X1, X2=None):
      """Evaluates kernel values between X1 and X2 and returns an n1xn2 kernel matrix.
      This is a wrapper for _child_evaluate.
      """
      X2 = X1 if X2 is None else X2
      if len(X1) == 0 or len(X2) == 0:
          return np.zeros((len(X1), len(X2)))
      return self._child_evaluate(X1, X2)
  
imports: from __future__ import print_function
  import numpy
  from scipy.linalg import solve_triangular
label_desc: Use image node_id 3 for calling the Kernel obj's underlying member method code with example usage: obj.evaluate(X1, X2) and returns: self, np