/* Generated by Pyrex 0.9.5.1a on Sun Jul 15 14:03:38 2007 */

#include "Python.h"
#include "structmember.h"
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
__PYX_EXTERN_C double pow(double, double);
#include "math.h"


typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/

static PyObject *__pyx_m;
static PyObject *__pyx_b;
static int __pyx_lineno;
static char *__pyx_filename;
static char **__pyx_f;

static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name); /*proto*/

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/

static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/

static void __Pyx_WriteUnraisable(char *name); /*proto*/

static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/

static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/

static void __Pyx_AddTraceback(char *funcname); /*proto*/

/* Declarations from rabbyt.dynamicvalues */


struct __pyx_obj_6rabbyt_13dynamicvalues_DV {
  PyObject_HEAD
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *__pyx_vtab;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV {
  float ((*g)(struct __pyx_obj_6rabbyt_13dynamicvalues_DV *));
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  float v;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVConst {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVConst *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVConst;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  float start;
  float end;
  int startt;
  int endt;
  int extend;
  float one_over_dt;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVLerp {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVLerp *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVLerp;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  float p0;
  int startt;
  int endt;
  int extend;
  float one_over_dt;
  float a;
  float b;
  float c;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVStaticCubicBezier {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVStaticCubicBezier *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVStaticCubicBezier;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *parent;
  PyObject *bounds;
  unsigned char is_static;
  float (s_bounds[2]);
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVWrap {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVWrap *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVWrap;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  float s;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *a;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAddStatic {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAddStatic *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVAddStatic;


struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *a1;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *a2;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic *__pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVAdd {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAdd {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAdd *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVAdd;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVSub {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVSub {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVSub *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVSub;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVMul {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVMul {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVMul *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVMul;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVDiv {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVDiv {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVDiv *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVDiv;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  PyObject *function;
  int cache_output;
  float cache;
  int cache_time;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVPyFunc {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVPyFunc *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVPyFunc;


struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV __pyx_base;
  int cache_output;
  float cache;
  int cache_time;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *_value;
};

struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVProxy {
  struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_base;
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVProxy *__pyx_vtabptr_6rabbyt_13dynamicvalues_DVProxy;

static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DV = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVConst = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVLerp = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVStaticCubicBezier = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVWrap = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVAddStatic = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVAdd = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVSub = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVMul = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVDiv = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVPyFunc = 0;
static PyTypeObject *__pyx_ptype_6rabbyt_13dynamicvalues_DVProxy = 0;
static int __pyx_v_6rabbyt_13dynamicvalues_time;
static PyObject *__pyx_k1;
static PyObject *__pyx_k2;
static int (__pyx_f_6rabbyt_13dynamicvalues__get_time(void)); /*proto*/
static float (__pyx_f_6rabbyt_13dynamicvalues_extend_t(float ,int )); /*proto*/


/* Implementation of rabbyt.dynamicvalues */

static PyObject *__pyx_n_set_time;
static PyObject *__pyx_n_get_time;
static PyObject *__pyx_n_to_DV;
static PyObject *__pyx_n_False;

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_set_time(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6rabbyt_13dynamicvalues_set_time[] = "\n    Sets the time that rabbyt.get_time() should return.\n\n    If you are using any time based animations, (such as rabbyt.lerp or\n    rabbyt.bezier3,) you should call this function every frame.\n\n    For example, if you are using pygame you can do this::\n\n        rabbyt.set_time(pygame.time.get_ticks())\n\n    Using this function should make it easier to implement a pause feature.\n    ";
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_set_time(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_t;
  PyObject *__pyx_r;
  static char *__pyx_argnames[] = {"t",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "i", __pyx_argnames, &__pyx_v_t)) return 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":24 */
  __pyx_v_6rabbyt_13dynamicvalues_time = __pyx_v_t;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_get_time(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6rabbyt_13dynamicvalues_get_time[] = "\n    Gets the time that was last set by rabbyt.set_time()\n    ";
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_get_time(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  static char *__pyx_argnames[] = {0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":31 */
  __pyx_1 = PyInt_FromLong(__pyx_v_6rabbyt_13dynamicvalues_time); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;}
  __pyx_r = __pyx_1;
  __pyx_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.get_time");
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues__get_time(void) {
  int __pyx_r;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":34 */
  __pyx_r = __pyx_v_6rabbyt_13dynamicvalues_time;
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_2DV_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DV *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF(__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":45 */
  __pyx_r = 0.0;
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV_get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV_get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  static char *__pyx_argnames[] = {0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0;
  Py_INCREF(__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":48 */
  __pyx_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_v_self)->__pyx_vtab)->g(((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_v_self))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;}
  __pyx_r = __pyx_1;
  __pyx_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DV.get");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  return __pyx_r;
}

static PyObject *__pyx_n_isinstance;
static PyObject *__pyx_n_int;
static PyObject *__pyx_n_long;
static PyObject *__pyx_n_float;

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  int __pyx_4;
  int __pyx_5;
  PyObject *__pyx_6 = 0;
  PyObject *__pyx_7 = 0;
  Py_INCREF(__pyx_v_self);
  Py_INCREF(__pyx_v_other);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":51 */
  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_isinstance); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
  Py_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_self);
  Py_INCREF(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  PyTuple_SET_ITEM(__pyx_2, 1, ((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  __pyx_4 = PyObject_IsTrue(__pyx_3); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  __pyx_5 = (!__pyx_4);
  if (__pyx_5) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":52 */
    __pyx_1 = __pyx_v_other;
    Py_INCREF(__pyx_1);
    __pyx_2 = __pyx_v_self;
    Py_INCREF(__pyx_2);
    Py_DECREF(__pyx_v_self);
    __pyx_v_self = __pyx_1;
    __pyx_1 = 0;
    Py_DECREF(__pyx_v_other);
    __pyx_v_other = __pyx_2;
    __pyx_2 = 0;
    goto __pyx_L2;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":53 */
  __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_isinstance); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_long); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  __pyx_6 = __Pyx_GetName(__pyx_b, __pyx_n_float); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  __pyx_7 = PyTuple_New(3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_7, 0, __pyx_1);
  PyTuple_SET_ITEM(__pyx_7, 1, __pyx_2);
  PyTuple_SET_ITEM(__pyx_7, 2, __pyx_6);
  __pyx_1 = 0;
  __pyx_2 = 0;
  __pyx_6 = 0;
  __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  Py_INCREF(__pyx_v_other);
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_other);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_7);
  __pyx_7 = 0;
  __pyx_2 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_4 = PyObject_IsTrue(__pyx_2); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;}
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  if (__pyx_4) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":54 */
    __pyx_6 = PyTuple_New(2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;}
    Py_INCREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_self);
    Py_INCREF(__pyx_v_other);
    PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_other);
    __pyx_7 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVAddStatic), __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;}
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    __pyx_r = __pyx_7;
    __pyx_7 = 0;
    goto __pyx_L0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":56 */
    __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; goto __pyx_L1;}
    Py_INCREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_self);
    Py_INCREF(__pyx_v_other);
    PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_other);
    __pyx_1 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVAdd), __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_r = __pyx_1;
    __pyx_1 = 0;
    goto __pyx_L0;
  }
  __pyx_L3:;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_6);
  Py_XDECREF(__pyx_7);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DV.__add__");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  Py_DECREF(__pyx_v_other);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  int __pyx_4;
  PyObject *__pyx_5 = 0;
  PyObject *__pyx_6 = 0;
  PyObject *__pyx_7 = 0;
  Py_INCREF(__pyx_v_self);
  Py_INCREF(__pyx_v_other);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":59 */
  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_isinstance); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
  __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
  Py_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_self);
  Py_INCREF(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  PyTuple_SET_ITEM(__pyx_3, 1, ((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
  if (__pyx_4) {
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_isinstance); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_long); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    __pyx_6 = __Pyx_GetName(__pyx_b, __pyx_n_float); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    __pyx_7 = PyTuple_New(3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    PyTuple_SET_ITEM(__pyx_7, 0, __pyx_3);
    PyTuple_SET_ITEM(__pyx_7, 1, __pyx_5);
    PyTuple_SET_ITEM(__pyx_7, 2, __pyx_6);
    __pyx_3 = 0;
    __pyx_5 = 0;
    __pyx_6 = 0;
    __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    Py_INCREF(__pyx_v_other);
    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_other);
    PyTuple_SET_ITEM(__pyx_3, 1, __pyx_7);
    __pyx_7 = 0;
    __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    Py_DECREF(__pyx_3); __pyx_3 = 0;
  }
  __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_4) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":60 */
    __pyx_5 = PyNumber_Negative(__pyx_v_other); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; goto __pyx_L1;}
    __pyx_6 = PyTuple_New(2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; goto __pyx_L1;}
    Py_INCREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_self);
    PyTuple_SET_ITEM(__pyx_6, 1, __pyx_5);
    __pyx_5 = 0;
    __pyx_7 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVAddStatic), __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; goto __pyx_L1;}
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    __pyx_r = __pyx_7;
    __pyx_7 = 0;
    goto __pyx_L0;
    goto __pyx_L2;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":62 */
    __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; goto __pyx_L1;}
    Py_INCREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_self);
    Py_INCREF(__pyx_v_other);
    PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_other);
    __pyx_3 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVSub), __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_r = __pyx_3;
    __pyx_3 = 0;
    goto __pyx_L0;
  }
  __pyx_L2:;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_5);
  Py_XDECREF(__pyx_6);
  Py_XDECREF(__pyx_7);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DV.__sub__");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  Py_DECREF(__pyx_v_other);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  Py_INCREF(__pyx_v_self);
  Py_INCREF(__pyx_v_other);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":65 */
  __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
  Py_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_self);
  Py_INCREF(__pyx_v_other);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_other);
  __pyx_2 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVMul), __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_r = __pyx_2;
  __pyx_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DV.__mul__");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  Py_DECREF(__pyx_v_other);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_2DV___div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  Py_INCREF(__pyx_v_self);
  Py_INCREF(__pyx_v_other);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":68 */
  __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;}
  Py_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_self);
  Py_INCREF(__pyx_v_other);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_other);
  __pyx_2 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVDiv), __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_r = __pyx_2;
  __pyx_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DV.__div__");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_self);
  Py_DECREF(__pyx_v_other);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_7DVConst___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_7DVConst___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_v;
  int __pyx_r;
  static char *__pyx_argnames[] = {"v",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "f", __pyx_argnames, &__pyx_v_v)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":75 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst *)__pyx_v_self)->v = __pyx_v_v;

  __pyx_r = 0;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_7DVConst_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":78 */
  __pyx_r = __pyx_v_self->v;
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_extend_t(float __pyx_v_t,int __pyx_v_mode) {
  float __pyx_r;
  int __pyx_1;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":81 */
  __pyx_1 = (__pyx_v_mode == 1);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":82 */
    __pyx_1 = (__pyx_v_t < 0);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":83 */
      __pyx_v_t = 0;
      goto __pyx_L3;
    }
    __pyx_1 = (__pyx_v_t > 1);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":85 */
      __pyx_v_t = 1;
      goto __pyx_L3;
    }
    __pyx_L3:;
    goto __pyx_L2;
  }
  __pyx_1 = (__pyx_v_mode == 2);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":87 */
    goto __pyx_L2;
  }
  __pyx_1 = (__pyx_v_mode == 3);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":89 */
    __pyx_1 = (__pyx_v_t >= 1);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":90 */
      __pyx_v_t = (__pyx_v_t - ((int )__pyx_v_t));
      goto __pyx_L4;
    }
    __pyx_1 = (__pyx_v_t < 0);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":92 */
      __pyx_v_t = ((1 + __pyx_v_t) - ((int )__pyx_v_t));
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L2;
  }
  __pyx_1 = (__pyx_v_mode == 4);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":94 */
    __pyx_1 = (__pyx_v_t < 0);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":95 */
      __pyx_v_t = (-__pyx_v_t);
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":96 */
    __pyx_1 = ((((int )__pyx_v_t) % 2) == 1);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":97 */
      __pyx_v_t = (1 - (__pyx_v_t - ((int )__pyx_v_t)));
      goto __pyx_L6;
    }
    /*else*/ {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":99 */
      __pyx_v_t = (__pyx_v_t - ((int )__pyx_v_t));
    }
    __pyx_L6:;
    goto __pyx_L2;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":100 */
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_6DVLerp___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_6DVLerp___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_start;
  float __pyx_v_end;
  int __pyx_v_startt;
  int __pyx_v_endt;
  int __pyx_v_extend;
  int __pyx_r;
  static char *__pyx_argnames[] = {"start","end","startt","endt","extend",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ffiii", __pyx_argnames, &__pyx_v_start, &__pyx_v_end, &__pyx_v_startt, &__pyx_v_endt, &__pyx_v_extend)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":112 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->start = __pyx_v_start;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":113 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->end = __pyx_v_end;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":114 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->startt = __pyx_v_startt;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":115 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->endt = __pyx_v_endt;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":116 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->extend = __pyx_v_extend;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":117 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->one_over_dt = (1 / ((float )(((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->endt - ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)__pyx_v_self)->startt)));

  __pyx_r = 0;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_6DVLerp_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *__pyx_v_self) {
  float __pyx_v_t;
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":121 */
  __pyx_v_t = __pyx_f_6rabbyt_13dynamicvalues_extend_t(((__pyx_f_6rabbyt_13dynamicvalues__get_time() - __pyx_v_self->startt) * __pyx_v_self->one_over_dt),__pyx_v_self->extend);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":123 */
  __pyx_r = (((__pyx_v_self->end - __pyx_v_self->start) * __pyx_v_t) + __pyx_v_self->start);
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_19DVStaticCubicBezier___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_19DVStaticCubicBezier___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_p0;
  float __pyx_v_p1;
  float __pyx_v_p2;
  float __pyx_v_p3;
  int __pyx_v_startt;
  int __pyx_v_endt;
  int __pyx_v_extend;
  int __pyx_r;
  static char *__pyx_argnames[] = {"p0","p1","p2","p3","startt","endt","extend",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ffffiii", __pyx_argnames, &__pyx_v_p0, &__pyx_v_p1, &__pyx_v_p2, &__pyx_v_p3, &__pyx_v_startt, &__pyx_v_endt, &__pyx_v_extend)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":134 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->p0 = __pyx_v_p0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":135 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->startt = __pyx_v_startt;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":136 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->endt = __pyx_v_endt;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":137 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->extend = __pyx_v_extend;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":138 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->one_over_dt = (1 / ((float )(__pyx_v_endt - __pyx_v_startt)));

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":139 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->c = (3.0 * (__pyx_v_p1 - __pyx_v_p0));

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":140 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->b = ((3.0 * (__pyx_v_p2 - __pyx_v_p1)) - ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->c);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":141 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->a = (((__pyx_v_p3 - __pyx_v_p0) - ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->c) - ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)__pyx_v_self)->b);

  __pyx_r = 0;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_19DVStaticCubicBezier_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *__pyx_v_self) {
  float __pyx_v_t;
  float __pyx_v_t2;
  float __pyx_v_t3;
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":145 */
  __pyx_v_t = __pyx_f_6rabbyt_13dynamicvalues_extend_t(((__pyx_f_6rabbyt_13dynamicvalues__get_time() - __pyx_v_self->startt) * __pyx_v_self->one_over_dt),__pyx_v_self->extend);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":146 */
  __pyx_v_t2 = (__pyx_v_t * __pyx_v_t);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":147 */
  __pyx_v_t3 = (__pyx_v_t2 * __pyx_v_t);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":148 */
  __pyx_r = ((((__pyx_v_self->a * __pyx_v_t3) + (__pyx_v_self->b * __pyx_v_t2)) + (__pyx_v_self->c * __pyx_v_t)) + __pyx_v_self->p0);
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_6DVWrap___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_6DVWrap___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_bounds = 0;
  PyObject *__pyx_v_parent = 0;
  PyObject *__pyx_v_static = 0;
  int __pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  float __pyx_4;
  PyObject *__pyx_5 = 0;
  static char *__pyx_argnames[] = {"bounds","parent","static",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_bounds, &__pyx_v_parent, &__pyx_v_static)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_bounds);
  Py_INCREF(__pyx_v_parent);
  Py_INCREF(__pyx_v_static);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":157 */
  __pyx_1 = PyObject_IsTrue(__pyx_v_static); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":158 */
    ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->is_static = 1;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":159 */
    __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; goto __pyx_L1;}
    __pyx_3 = PyObject_GetItem(__pyx_v_bounds, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_4 = PyFloat_AsDouble(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    (((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->s_bounds[0]) = __pyx_4;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":160 */
    __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
    __pyx_3 = PyObject_GetItem(__pyx_v_bounds, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_4 = PyFloat_AsDouble(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    (((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->s_bounds[1]) = __pyx_4;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":161 */
    Py_INCREF(Py_None);
    Py_DECREF(((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->bounds);
    ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->bounds = Py_None;
    goto __pyx_L2;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":163 */
    ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->is_static = 0;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":164 */
    Py_INCREF(__pyx_v_bounds);
    Py_DECREF(((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->bounds);
    ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->bounds = __pyx_v_bounds;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":166 */
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_to_DV); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
  __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
  Py_INCREF(__pyx_v_parent);
  PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_parent);
  __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  if (!__Pyx_TypeTest(__pyx_5, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
  Py_DECREF(((PyObject *)((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->parent));
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)__pyx_v_self)->parent = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_5);
  __pyx_5 = 0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVWrap.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_bounds);
  Py_DECREF(__pyx_v_parent);
  Py_DECREF(__pyx_v_static);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_6DVWrap_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *__pyx_v_self) {
  float __pyx_v_p;
  float __pyx_v_b1;
  float __pyx_v_b2;
  float __pyx_v_d;
  float __pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  float __pyx_4;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":170 */
  __pyx_1 = (__pyx_v_self->is_static == 1);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":171 */
    __pyx_v_b1 = (__pyx_v_self->s_bounds[0]);

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":172 */
    __pyx_v_b2 = (__pyx_v_self->s_bounds[1]);
    goto __pyx_L2;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":174 */
    __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
    __pyx_3 = PyObject_GetItem(__pyx_v_self->bounds, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_4 = PyFloat_AsDouble(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_v_b1 = __pyx_4;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":175 */
    __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;}
    __pyx_3 = PyObject_GetItem(__pyx_v_self->bounds, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_4 = PyFloat_AsDouble(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_v_b2 = __pyx_4;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":177 */
  __pyx_v_p = ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->parent->__pyx_vtab)->g(__pyx_v_self->parent);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":179 */
  __pyx_v_d = (__pyx_v_b2 - __pyx_v_b1);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":181 */
  __pyx_v_p = fmodf((__pyx_v_p - fmodf(__pyx_v_b1,__pyx_v_d)),__pyx_v_d);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":182 */
  __pyx_1 = (__pyx_v_p < 0);
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":183 */
    __pyx_v_p = (__pyx_v_p + __pyx_v_d);
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":185 */
  __pyx_r = (__pyx_v_p + __pyx_v_b1);
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  __Pyx_WriteUnraisable("rabbyt.dynamicvalues.DVWrap.g");
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_11DVAddStatic___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_11DVAddStatic___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *__pyx_v_a = 0;
  float __pyx_v_s;
  int __pyx_r;
  static char *__pyx_argnames[] = {"a","s",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "Of", __pyx_argnames, &__pyx_v_a, &__pyx_v_s)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_a);
  if (!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_6rabbyt_13dynamicvalues_DV, 0, "a")) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; goto __pyx_L1;}

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":192 */
  Py_INCREF(((PyObject *)__pyx_v_a));
  Py_DECREF(((PyObject *)((struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)__pyx_v_self)->a));
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)__pyx_v_self)->a = __pyx_v_a;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":193 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)__pyx_v_self)->s = __pyx_v_s;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVAddStatic.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_a);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_11DVAddStatic_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":196 */
  __pyx_r = (((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->a->__pyx_vtab)->g(__pyx_v_self->a) + __pyx_v_self->s);
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_13_DVArithmatic___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_13_DVArithmatic___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a1 = 0;
  PyObject *__pyx_v_a2 = 0;
  int __pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  static char *__pyx_argnames[] = {"a1","a2",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_a1, &__pyx_v_a2)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_a1);
  Py_INCREF(__pyx_v_a2);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":203 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_to_DV); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;}
  Py_INCREF(__pyx_v_a1);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_a1);
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;}
  Py_DECREF(((PyObject *)((struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)__pyx_v_self)->a1));
  ((struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)__pyx_v_self)->a1 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_3);
  __pyx_3 = 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":204 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_to_DV); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
  Py_INCREF(__pyx_v_a2);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_a2);
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
  Py_DECREF(((PyObject *)((struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)__pyx_v_self)->a2));
  ((struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)__pyx_v_self)->a2 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_3);
  __pyx_3 = 0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  __Pyx_AddTraceback("rabbyt.dynamicvalues._DVArithmatic.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_a1);
  Py_DECREF(__pyx_v_a2);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_5DVAdd_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVAdd *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":208 */
  __pyx_r = (((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a1->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a1) + ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a2->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a2));
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_5DVSub_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVSub *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":212 */
  __pyx_r = (((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a1->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a1) - ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a2->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a2));
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_5DVMul_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVMul *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":216 */
  __pyx_r = (((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a1->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a1) * ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a2->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a2));
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_5DVDiv_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVDiv *__pyx_v_self) {
  float __pyx_r;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":220 */
  __pyx_r = (((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a1->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a1) / ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->__pyx_base.a2->__pyx_vtab)->g(__pyx_v_self->__pyx_base.a2));
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_8DVPyFunc___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_8DVPyFunc___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_function = 0;
  PyObject *__pyx_v_cache = 0;
  int __pyx_r;
  int __pyx_1;
  static char *__pyx_argnames[] = {"function","cache",0};
  __pyx_v_cache = __pyx_k1;
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_function, &__pyx_v_cache)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_function);
  Py_INCREF(__pyx_v_cache);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":228 */
  Py_INCREF(__pyx_v_function);
  Py_DECREF(((struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)__pyx_v_self)->function);
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)__pyx_v_self)->function = __pyx_v_function;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":229 */
  __pyx_1 = PyInt_AsLong(__pyx_v_cache); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; goto __pyx_L1;}
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)__pyx_v_self)->cache_output = __pyx_1;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVPyFunc.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_function);
  Py_DECREF(__pyx_v_cache);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_8DVPyFunc_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *__pyx_v_self) {
  float __pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  float __pyx_3;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":232 */
  __pyx_1 = __pyx_v_self->cache_output;
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":233 */
    __pyx_1 = (__pyx_f_6rabbyt_13dynamicvalues__get_time() != __pyx_v_self->cache_time);
    if (__pyx_1) {

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":234 */
      __pyx_2 = PyObject_CallObject(__pyx_v_self->function, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; goto __pyx_L1;}
      __pyx_3 = PyFloat_AsDouble(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; goto __pyx_L1;}
      Py_DECREF(__pyx_2); __pyx_2 = 0;
      __pyx_v_self->cache = __pyx_3;

      /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":235 */
      __pyx_v_self->cache_time = __pyx_f_6rabbyt_13dynamicvalues__get_time();
      goto __pyx_L3;
    }
    __pyx_L3:;

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":236 */
    __pyx_r = __pyx_v_self->cache;
    goto __pyx_L0;
    goto __pyx_L2;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":238 */
    __pyx_2 = PyObject_CallObject(__pyx_v_self->function, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; goto __pyx_L1;}
    __pyx_3 = PyFloat_AsDouble(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_r = __pyx_3;
    goto __pyx_L0;
  }
  __pyx_L2:;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  __Pyx_WriteUnraisable("rabbyt.dynamicvalues.DVPyFunc.g");
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static PyObject *__pyx_n_value;

static int __pyx_f_6rabbyt_13dynamicvalues_7DVProxy___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_7DVProxy___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_cache = 0;
  int __pyx_r;
  int __pyx_1;
  static char *__pyx_argnames[] = {"value","cache",0};
  __pyx_v_cache = __pyx_k2;
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_value, &__pyx_v_cache)) return -1;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_value);
  Py_INCREF(__pyx_v_cache);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":246 */
  __pyx_1 = PyInt_AsLong(__pyx_v_cache); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; goto __pyx_L1;}
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->cache_output = __pyx_1;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":247 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVProxy.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_value);
  Py_DECREF(__pyx_v_cache);
  return __pyx_r;
}

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":251 */
  __pyx_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->_value->__pyx_vtab)->g(((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->_value)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; goto __pyx_L1;}
  __pyx_r = __pyx_1;
  __pyx_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVProxy.value.__get__");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static int __pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
static int __pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
  int __pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  Py_INCREF((PyObject *)__pyx_v_self);
  Py_INCREF(__pyx_v_v);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":253 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_to_DV); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
  Py_INCREF(__pyx_v_v);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_v);
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
  Py_DECREF(((PyObject *)((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->_value));
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->_value = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_3);
  __pyx_3 = 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":254 */
  ((struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)__pyx_v_self)->cache_time = 0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.DVProxy.value.__set__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  Py_DECREF(__pyx_v_v);
  return __pyx_r;
}

static float __pyx_f_6rabbyt_13dynamicvalues_7DVProxy_g(struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *__pyx_v_self) {
  float __pyx_r;
  int __pyx_1;
  Py_INCREF((PyObject *)__pyx_v_self);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":257 */
  __pyx_1 = (!__pyx_v_self->cache_output);
  if (!__pyx_1) {
    __pyx_1 = (__pyx_f_6rabbyt_13dynamicvalues__get_time() != __pyx_v_self->cache_time);
  }
  if (__pyx_1) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":258 */
    __pyx_v_self->cache = ((struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV *)__pyx_v_self->_value->__pyx_vtab)->g(__pyx_v_self->_value);

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":259 */
    __pyx_v_self->cache_time = __pyx_f_6rabbyt_13dynamicvalues__get_time();
    goto __pyx_L2;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":260 */
  __pyx_r = __pyx_v_self->cache;
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF((PyObject *)__pyx_v_self);
  return __pyx_r;
}

static PyObject *__pyx_n_callable;

static PyObject *__pyx_f_6rabbyt_13dynamicvalues_to_DV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6rabbyt_13dynamicvalues_to_DV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_v = 0;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *__pyx_v_dv;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  int __pyx_4;
  static char *__pyx_argnames[] = {"v",0};
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_v)) return 0;
  Py_INCREF(__pyx_v_v);
  __pyx_v_dv = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":264 */
  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_isinstance); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;}
  Py_INCREF(__pyx_v_v);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_v);
  Py_INCREF(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  PyTuple_SET_ITEM(__pyx_2, 1, ((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DV));
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  __pyx_4 = PyObject_IsTrue(__pyx_3); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  if (__pyx_4) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":265 */
    if (!__Pyx_TypeTest(__pyx_v_v, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; goto __pyx_L1;}
    Py_INCREF(__pyx_v_v);
    Py_DECREF(((PyObject *)__pyx_v_dv));
    __pyx_v_dv = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_v_v);
    goto __pyx_L2;
  }
  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_callable); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;}
  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;}
  Py_INCREF(__pyx_v_v);
  PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_v);
  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  __pyx_4 = PyObject_IsTrue(__pyx_3); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  if (__pyx_4) {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":267 */
    __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; goto __pyx_L1;}
    Py_INCREF(__pyx_v_v);
    PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_v);
    __pyx_2 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVPyFunc), __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; goto __pyx_L1;}
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    if (!__Pyx_TypeTest(__pyx_2, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_v_dv));
    __pyx_v_dv = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_2);
    __pyx_2 = 0;
    goto __pyx_L2;
  }
  /*else*/ {

    /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":269 */
    __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
    Py_INCREF(__pyx_v_v);
    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_v);
    __pyx_1 = PyObject_CallObject(((PyObject*)__pyx_ptype_6rabbyt_13dynamicvalues_DVConst), __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    if (!__Pyx_TypeTest(__pyx_1, __pyx_ptype_6rabbyt_13dynamicvalues_DV)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_v_dv));
    __pyx_v_dv = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)__pyx_1);
    __pyx_1 = 0;
  }
  __pyx_L2:;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":270 */
  Py_INCREF(((PyObject *)__pyx_v_dv));
  __pyx_r = ((PyObject *)__pyx_v_dv);
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  __Pyx_AddTraceback("rabbyt.dynamicvalues.to_DV");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_dv);
  Py_DECREF(__pyx_v_v);
  return __pyx_r;
}

static __Pyx_InternTabEntry __pyx_intern_tab[] = {
  {&__pyx_n_False, "False"},
  {&__pyx_n_callable, "callable"},
  {&__pyx_n_float, "float"},
  {&__pyx_n_get_time, "get_time"},
  {&__pyx_n_int, "int"},
  {&__pyx_n_isinstance, "isinstance"},
  {&__pyx_n_long, "long"},
  {&__pyx_n_set_time, "set_time"},
  {&__pyx_n_to_DV, "to_DV"},
  {&__pyx_n_value, "value"},
  {0, 0}
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV __pyx_vtable_6rabbyt_13dynamicvalues_DV;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DV(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (*t->tp_alloc)(t, 0);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DV *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DV **)&p->__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DV(PyObject *o) {
  (*o->ob_type->tp_free)(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DV(PyObject *o, visitproc v, void *a) {
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DV(PyObject *o) {
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DV[] = {
  {"get", (PyCFunction)__pyx_f_6rabbyt_13dynamicvalues_2DV_get, METH_VARARGS|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DV = {
  __pyx_f_6rabbyt_13dynamicvalues_2DV___add__, /*nb_add*/
  __pyx_f_6rabbyt_13dynamicvalues_2DV___sub__, /*nb_subtract*/
  __pyx_f_6rabbyt_13dynamicvalues_2DV___mul__, /*nb_multiply*/
  __pyx_f_6rabbyt_13dynamicvalues_2DV___div__, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DV = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DV = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DV = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DV = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DV", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DV), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DV, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DV, /*tp_as_number*/
  &__pyx_tp_as_sequence_DV, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DV, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DV, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    DV\n\n    This is the base class for dynamic values.  It shouldn\'t be instanced\n    directly.\n    ", /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DV, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DV, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DV, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DV, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVConst __pyx_vtable_6rabbyt_13dynamicvalues_DVConst;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVConst(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVConst **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVConst;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVConst(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVConst(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVConst(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVConst[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVConst = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVConst = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVConst = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVConst = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVConst = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVConst", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVConst), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVConst, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVConst, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVConst, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVConst, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVConst, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVConst, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVConst, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVConst, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_7DVConst___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVConst, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVLerp __pyx_vtable_6rabbyt_13dynamicvalues_DVLerp;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVLerp(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVLerp **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVLerp;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVLerp(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVLerp(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVLerp(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVLerp[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVLerp = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVLerp = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVLerp = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVLerp = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVLerp = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVLerp", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVLerp), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVLerp, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVLerp, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVLerp, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVLerp, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVLerp, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVLerp, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVLerp, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVLerp, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_6DVLerp___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVLerp, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVStaticCubicBezier __pyx_vtable_6rabbyt_13dynamicvalues_DVStaticCubicBezier;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVStaticCubicBezier(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVStaticCubicBezier **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVStaticCubicBezier;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVStaticCubicBezier(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVStaticCubicBezier(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVStaticCubicBezier(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVStaticCubicBezier[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVStaticCubicBezier = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVStaticCubicBezier = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVStaticCubicBezier = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVStaticCubicBezier = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVStaticCubicBezier", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVStaticCubicBezier), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVStaticCubicBezier, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVStaticCubicBezier, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVStaticCubicBezier, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVStaticCubicBezier, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVStaticCubicBezier, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVStaticCubicBezier, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVStaticCubicBezier, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVStaticCubicBezier, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_19DVStaticCubicBezier___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVStaticCubicBezier, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVWrap __pyx_vtable_6rabbyt_13dynamicvalues_DVWrap;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVWrap(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVWrap **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVWrap;
  p->parent = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  p->bounds = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVWrap(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)o;
  Py_XDECREF(((PyObject *)p->parent));
  Py_XDECREF(p->bounds);
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVWrap(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)o;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  if (p->parent) {
    e = (*v)(((PyObject*)p->parent), a); if (e) return e;
  }
  if (p->bounds) {
    e = (*v)(p->bounds, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVWrap(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap *)o;
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  Py_XDECREF(((PyObject *)p->parent));
  p->parent = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(p->bounds);
  p->bounds = Py_None; Py_INCREF(Py_None);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVWrap[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVWrap = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVWrap = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVWrap = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVWrap = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVWrap = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVWrap", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVWrap), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVWrap, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVWrap, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVWrap, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVWrap, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVWrap, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVWrap, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVWrap, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVWrap, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_6DVWrap___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVWrap, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAddStatic __pyx_vtable_6rabbyt_13dynamicvalues_DVAddStatic;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVAddStatic(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAddStatic **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAddStatic;
  p->a = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVAddStatic(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)o;
  Py_XDECREF(((PyObject *)p->a));
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVAddStatic(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)o;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  if (p->a) {
    e = (*v)(((PyObject*)p->a), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVAddStatic(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic *)o;
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  Py_XDECREF(((PyObject *)p->a));
  p->a = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVAddStatic[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVAddStatic = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVAddStatic = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVAddStatic = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVAddStatic = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVAddStatic = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVAddStatic", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVAddStatic), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVAddStatic, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVAddStatic, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVAddStatic, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVAddStatic, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVAddStatic, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVAddStatic, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVAddStatic, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVAddStatic, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_11DVAddStatic___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVAddStatic, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic __pyx_vtable_6rabbyt_13dynamicvalues__DVArithmatic;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues__DVArithmatic(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues__DVArithmatic **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;
  p->a1 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  p->a2 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues__DVArithmatic(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)o;
  Py_XDECREF(((PyObject *)p->a1));
  Py_XDECREF(((PyObject *)p->a2));
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues__DVArithmatic(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)o;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  if (p->a1) {
    e = (*v)(((PyObject*)p->a1), a); if (e) return e;
  }
  if (p->a2) {
    e = (*v)(((PyObject*)p->a2), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues__DVArithmatic(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *p = (struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic *)o;
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  Py_XDECREF(((PyObject *)p->a1));
  p->a1 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(((PyObject *)p->a2));
  p->a2 = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues__DVArithmatic[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number__DVArithmatic = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence__DVArithmatic = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping__DVArithmatic = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer__DVArithmatic = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues__DVArithmatic = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues._DVArithmatic", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues__DVArithmatic), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues__DVArithmatic, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number__DVArithmatic, /*tp_as_number*/
  &__pyx_tp_as_sequence__DVArithmatic, /*tp_as_sequence*/
  &__pyx_tp_as_mapping__DVArithmatic, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer__DVArithmatic, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues__DVArithmatic, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues__DVArithmatic, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues__DVArithmatic, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_13_DVArithmatic___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues__DVArithmatic, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAdd __pyx_vtable_6rabbyt_13dynamicvalues_DVAdd;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVAdd(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVAdd *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVAdd *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVAdd **)&p->__pyx_base.__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAdd;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVAdd(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVAdd(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVAdd(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVAdd[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVAdd = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVAdd = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVAdd = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVAdd = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVAdd = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVAdd", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVAdd), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVAdd, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVAdd, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVAdd, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVAdd, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVAdd, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVAdd, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVAdd, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVAdd, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVAdd, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVSub __pyx_vtable_6rabbyt_13dynamicvalues_DVSub;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVSub(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVSub *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVSub *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVSub **)&p->__pyx_base.__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVSub;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVSub(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVSub(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVSub(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVSub[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVSub = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVSub = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVSub = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVSub = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVSub = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVSub", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVSub), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVSub, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVSub, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVSub, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVSub, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVSub, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVSub, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVSub, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVSub, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVSub, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVMul __pyx_vtable_6rabbyt_13dynamicvalues_DVMul;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVMul(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVMul *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVMul *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVMul **)&p->__pyx_base.__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVMul;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVMul(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVMul(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVMul(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVMul[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVMul = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVMul = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVMul = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVMul = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVMul = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVMul", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVMul), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVMul, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVMul, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVMul, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVMul, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVMul, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVMul, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVMul, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVMul, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVMul, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVDiv __pyx_vtable_6rabbyt_13dynamicvalues_DVDiv;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVDiv(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVDiv *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVDiv *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVDiv **)&p->__pyx_base.__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVDiv;
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVDiv(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVDiv(PyObject *o, visitproc v, void *a) {
  int e;
  e = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_traverse(o, v, a); if (e) return e;
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVDiv(PyObject *o) {
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic->tp_clear(o);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVDiv[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVDiv = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVDiv = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVDiv = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVDiv = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVDiv = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVDiv", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVDiv), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVDiv, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVDiv, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVDiv, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVDiv, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVDiv, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVDiv, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVDiv, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVDiv, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVDiv, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVPyFunc __pyx_vtable_6rabbyt_13dynamicvalues_DVPyFunc;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVPyFunc(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVPyFunc **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVPyFunc;
  p->function = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVPyFunc(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)o;
  Py_XDECREF(p->function);
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVPyFunc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)o;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  if (p->function) {
    e = (*v)(p->function, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVPyFunc(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc *)o;
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  Py_XDECREF(p->function);
  p->function = Py_None; Py_INCREF(Py_None);
  return 0;
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVPyFunc[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVPyFunc = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVPyFunc = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVPyFunc = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVPyFunc = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVPyFunc = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVPyFunc", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVPyFunc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVPyFunc, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVPyFunc, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVPyFunc, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVPyFunc, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVPyFunc, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVPyFunc, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVPyFunc, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVPyFunc, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_8DVPyFunc___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVPyFunc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVProxy __pyx_vtable_6rabbyt_13dynamicvalues_DVProxy;

static PyObject *__pyx_tp_new_6rabbyt_13dynamicvalues_DVProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_new(t, a, k);
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)o;
  *(struct __pyx_vtabstruct_6rabbyt_13dynamicvalues_DVProxy **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_6rabbyt_13dynamicvalues_DVProxy;
  p->_value = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVProxy(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)o;
  Py_XDECREF(((PyObject *)p->_value));
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_dealloc(o);
}

static int __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVProxy(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)o;
  e = __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_traverse(o, v, a); if (e) return e;
  if (p->_value) {
    e = (*v)(((PyObject*)p->_value), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_6rabbyt_13dynamicvalues_DVProxy(PyObject *o) {
  struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *p = (struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy *)o;
  __pyx_ptype_6rabbyt_13dynamicvalues_DV->tp_clear(o);
  Py_XDECREF(((PyObject *)p->_value));
  p->_value = ((struct __pyx_obj_6rabbyt_13dynamicvalues_DV *)Py_None); Py_INCREF(Py_None);
  return 0;
}

static PyObject *__pyx_getprop_6rabbyt_13dynamicvalues_7DVProxy_value(PyObject *o, void *x) {
  return __pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___get__(o);
}

static int __pyx_setprop_6rabbyt_13dynamicvalues_7DVProxy_value(PyObject *o, PyObject *v, void *x) {
  if (v) {
    return __pyx_f_6rabbyt_13dynamicvalues_7DVProxy_5value___set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static struct PyMethodDef __pyx_methods_6rabbyt_13dynamicvalues_DVProxy[] = {
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_6rabbyt_13dynamicvalues_DVProxy[] = {
  {"value", __pyx_getprop_6rabbyt_13dynamicvalues_7DVProxy_value, __pyx_setprop_6rabbyt_13dynamicvalues_7DVProxy_value, 0, 0},
  {0, 0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_DVProxy = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_DVProxy = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_DVProxy = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_DVProxy = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6rabbyt_13dynamicvalues_DVProxy = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "rabbyt.dynamicvalues.DVProxy", /*tp_name*/
  sizeof(struct __pyx_obj_6rabbyt_13dynamicvalues_DVProxy), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6rabbyt_13dynamicvalues_DVProxy, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_DVProxy, /*tp_as_number*/
  &__pyx_tp_as_sequence_DVProxy, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_DVProxy, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_DVProxy, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_6rabbyt_13dynamicvalues_DVProxy, /*tp_traverse*/
  __pyx_tp_clear_6rabbyt_13dynamicvalues_DVProxy, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6rabbyt_13dynamicvalues_DVProxy, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_6rabbyt_13dynamicvalues_DVProxy, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_6rabbyt_13dynamicvalues_7DVProxy___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6rabbyt_13dynamicvalues_DVProxy, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static struct PyMethodDef __pyx_methods[] = {
  {"set_time", (PyCFunction)__pyx_f_6rabbyt_13dynamicvalues_set_time, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6rabbyt_13dynamicvalues_set_time},
  {"get_time", (PyCFunction)__pyx_f_6rabbyt_13dynamicvalues_get_time, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6rabbyt_13dynamicvalues_get_time},
  {"to_DV", (PyCFunction)__pyx_f_6rabbyt_13dynamicvalues_to_DV, METH_VARARGS|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static void __pyx_init_filenames(void); /*proto*/

PyMODINIT_FUNC initdynamicvalues(void); /*proto*/
PyMODINIT_FUNC initdynamicvalues(void) {
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  __pyx_init_filenames();
  __pyx_m = Py_InitModule4("dynamicvalues", __pyx_methods, 0, 0, PYTHON_API_VERSION);
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; goto __pyx_L1;};
  __pyx_b = PyImport_AddModule("__builtin__");
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; goto __pyx_L1;};
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; goto __pyx_L1;};
  if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; goto __pyx_L1;};
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DV = &__pyx_vtable_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DV.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_2DV_g;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DV) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DV.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DV) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DV", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DV) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DV = &__pyx_type_6rabbyt_13dynamicvalues_DV;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVConst = &__pyx_vtable_6rabbyt_13dynamicvalues_DVConst;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVConst.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVConst.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_7DVConst_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVConst.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVConst) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVConst.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVConst) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVConst", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVConst) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVConst = &__pyx_type_6rabbyt_13dynamicvalues_DVConst;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVLerp = &__pyx_vtable_6rabbyt_13dynamicvalues_DVLerp;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVLerp.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVLerp.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_6DVLerp_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVLerp.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVLerp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVLerp.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVLerp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVLerp", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVLerp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVLerp = &__pyx_type_6rabbyt_13dynamicvalues_DVLerp;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVStaticCubicBezier = &__pyx_vtable_6rabbyt_13dynamicvalues_DVStaticCubicBezier;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVStaticCubicBezier.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVStaticCubicBezier.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_19DVStaticCubicBezier_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVStaticCubicBezier) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVStaticCubicBezier", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVStaticCubicBezier = &__pyx_type_6rabbyt_13dynamicvalues_DVStaticCubicBezier;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVWrap = &__pyx_vtable_6rabbyt_13dynamicvalues_DVWrap;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVWrap.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVWrap.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_6DVWrap_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVWrap.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues_DVWrap.tp_free = _PyObject_GC_Del;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVWrap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVWrap.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVWrap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVWrap", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVWrap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVWrap = &__pyx_type_6rabbyt_13dynamicvalues_DVWrap;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAddStatic = &__pyx_vtable_6rabbyt_13dynamicvalues_DVAddStatic;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVAddStatic.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVAddStatic.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_11DVAddStatic_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVAddStatic.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues_DVAddStatic.tp_free = _PyObject_GC_Del;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVAddStatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVAddStatic.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAddStatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVAddStatic", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVAddStatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVAddStatic = &__pyx_type_6rabbyt_13dynamicvalues_DVAddStatic;
  __pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic = &__pyx_vtable_6rabbyt_13dynamicvalues__DVArithmatic;
  __pyx_vtable_6rabbyt_13dynamicvalues__DVArithmatic.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues__DVArithmatic.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues__DVArithmatic.tp_free = _PyObject_GC_Del;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues__DVArithmatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues__DVArithmatic.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "_DVArithmatic", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues__DVArithmatic) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic = &__pyx_type_6rabbyt_13dynamicvalues__DVArithmatic;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAdd = &__pyx_vtable_6rabbyt_13dynamicvalues_DVAdd;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVAdd.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVAdd.__pyx_base.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_5DVAdd_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVAdd.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVAdd) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVAdd.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVAdd) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVAdd", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVAdd) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVAdd = &__pyx_type_6rabbyt_13dynamicvalues_DVAdd;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVSub = &__pyx_vtable_6rabbyt_13dynamicvalues_DVSub;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVSub.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVSub.__pyx_base.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_5DVSub_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVSub.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVSub) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVSub.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVSub) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVSub", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVSub) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVSub = &__pyx_type_6rabbyt_13dynamicvalues_DVSub;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVMul = &__pyx_vtable_6rabbyt_13dynamicvalues_DVMul;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVMul.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVMul.__pyx_base.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_5DVMul_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVMul.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVMul) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVMul.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVMul) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVMul", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVMul) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVMul = &__pyx_type_6rabbyt_13dynamicvalues_DVMul;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVDiv = &__pyx_vtable_6rabbyt_13dynamicvalues_DVDiv;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVDiv.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues__DVArithmatic;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVDiv.__pyx_base.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_5DVDiv_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVDiv.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues__DVArithmatic;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVDiv) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVDiv.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVDiv) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVDiv", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVDiv) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVDiv = &__pyx_type_6rabbyt_13dynamicvalues_DVDiv;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVPyFunc = &__pyx_vtable_6rabbyt_13dynamicvalues_DVPyFunc;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVPyFunc.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVPyFunc.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_8DVPyFunc_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVPyFunc.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues_DVPyFunc.tp_free = _PyObject_GC_Del;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVPyFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVPyFunc.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVPyFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVPyFunc", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVPyFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVPyFunc = &__pyx_type_6rabbyt_13dynamicvalues_DVPyFunc;
  __pyx_vtabptr_6rabbyt_13dynamicvalues_DVProxy = &__pyx_vtable_6rabbyt_13dynamicvalues_DVProxy;
  __pyx_vtable_6rabbyt_13dynamicvalues_DVProxy.__pyx_base = *__pyx_vtabptr_6rabbyt_13dynamicvalues_DV;
  *(void(**)())&__pyx_vtable_6rabbyt_13dynamicvalues_DVProxy.__pyx_base.g = (void(*)())__pyx_f_6rabbyt_13dynamicvalues_7DVProxy_g;
  __pyx_type_6rabbyt_13dynamicvalues_DVProxy.tp_base = __pyx_ptype_6rabbyt_13dynamicvalues_DV;
  __pyx_type_6rabbyt_13dynamicvalues_DVProxy.tp_free = _PyObject_GC_Del;
  if (PyType_Ready(&__pyx_type_6rabbyt_13dynamicvalues_DVProxy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6rabbyt_13dynamicvalues_DVProxy.tp_dict, __pyx_vtabptr_6rabbyt_13dynamicvalues_DVProxy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "DVProxy", (PyObject *)&__pyx_type_6rabbyt_13dynamicvalues_DVProxy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; goto __pyx_L1;}
  __pyx_ptype_6rabbyt_13dynamicvalues_DVProxy = &__pyx_type_6rabbyt_13dynamicvalues_DVProxy;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":227 */
  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
  __pyx_k1 = __pyx_1;
  __pyx_1 = 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":245 */
  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;}
  __pyx_k2 = __pyx_2;
  __pyx_2 = 0;

  /* "/home/mmarshall/projects/rabbyt/rabbyt/rabbyt.dynamicvalues.pyx":262 */
  return;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("rabbyt.dynamicvalues");
}

static char *__pyx_filenames[] = {
  "rabbyt.dynamicvalues.pyx",
};

/* Runtime support code */

static void __pyx_init_filenames(void) {
  __pyx_f = __pyx_filenames;
}

static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name) {
    if (!type) {
        PyErr_Format(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if ((none_allowed && obj == Py_None) || PyObject_TypeCheck(obj, type))
        return 1;
    PyErr_Format(PyExc_TypeError,
        "Argument '%s' has incorrect type (expected %s, got %s)",
        name, type->tp_name, obj->ob_type->tp_name);
    return 0;
}

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
    PyObject *result;
    result = PyObject_GetAttr(dict, name);
    if (!result)
        PyErr_SetObject(PyExc_NameError, name);
    return result;
}

static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (!type) {
        PyErr_Format(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (obj == Py_None || PyObject_TypeCheck(obj, type))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %s to %s",
        obj->ob_type->tp_name, type->tp_name);
    return 0;
}

static void __Pyx_WriteUnraisable(char *name) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    PyErr_Fetch(&old_exc, &old_val, &old_tb);
    ctx = PyString_FromString(name);
    PyErr_Restore(old_exc, old_val, old_tb);
    if (!ctx)
        ctx = Py_None;
    PyErr_WriteUnraisable(ctx);
}

static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) {
    while (t->p) {
        *t->p = PyString_InternFromString(t->s);
        if (!*t->p)
            return -1;
        ++t;
    }
    return 0;
}

static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
    PyObject *pycobj = 0;
    int result;
    
    pycobj = PyCObject_FromVoidPtr(vtable, 0);
    if (!pycobj)
        goto bad;
    if (PyDict_SetItemString(dict, "__pyx_vtable__", pycobj) < 0)
        goto bad;
    result = 0;
    goto done;

bad:
    result = -1;
done:
    Py_XDECREF(pycobj);
    return result;
}

#include "compile.h"
#include "frameobject.h"
#include "traceback.h"

static void __Pyx_AddTraceback(char *funcname) {
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    PyObject *py_globals = 0;
    PyObject *empty_tuple = 0;
    PyObject *empty_string = 0;
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    
    py_srcfile = PyString_FromString(__pyx_filename);
    if (!py_srcfile) goto bad;
    py_funcname = PyString_FromString(funcname);
    if (!py_funcname) goto bad;
    py_globals = PyModule_GetDict(__pyx_m);
    if (!py_globals) goto bad;
    empty_tuple = PyTuple_New(0);
    if (!empty_tuple) goto bad;
    empty_string = PyString_FromString("");
    if (!empty_string) goto bad;
    py_code = PyCode_New(
        0,            /*int argcount,*/
        0,            /*int nlocals,*/
        0,            /*int stacksize,*/
        0,            /*int flags,*/
        empty_string, /*PyObject *code,*/
        empty_tuple,  /*PyObject *consts,*/
        empty_tuple,  /*PyObject *names,*/
        empty_tuple,  /*PyObject *varnames,*/
        empty_tuple,  /*PyObject *freevars,*/
        empty_tuple,  /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        __pyx_lineno,   /*int firstlineno,*/
        empty_string  /*PyObject *lnotab*/
    );
    if (!py_code) goto bad;
    py_frame = PyFrame_New(
        PyThreadState_Get(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        py_globals,          /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    py_frame->f_lineno = __pyx_lineno;
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    Py_XDECREF(empty_tuple);
    Py_XDECREF(empty_string);
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
