sig
  type t = AGeom.vector3d
  val of_points : AGeom.Point3d.t -> AGeom.Point3d.t -> AGeom.Vector3d.t
  val add : AGeom.Vector3d.t -> AGeom.Vector3d.t -> AGeom.Vector3d.t
  val sub : AGeom.Vector3d.t -> AGeom.Vector3d.t -> AGeom.Vector3d.t
  val mul : AGeom.Vector3d.t -> float -> AGeom.Vector3d.t
  val div : AGeom.Vector3d.t -> float -> AGeom.Vector3d.t
  val dot : AGeom.Vector3d.t -> AGeom.Vector3d.t -> float
  val length : AGeom.Vector3d.t -> float
  val normalise : AGeom.Vector3d.t -> AGeom.Vector3d.t
  val cross : AGeom.Vector3d.t -> AGeom.Vector3d.t -> AGeom.Vector3d.t
  val rand : float * float * float -> AGeom.Vector3d.t
  val srand : Random.State.t -> float * float * float -> AGeom.Vector3d.t
  val to_string : AGeom.Vector3d.t -> string
  val of_string : string -> AGeom.Vector3d.t
  module Infix :
    sig
      val ( + ) : AGeom.Vector3d.t -> AGeom.Vector3d.t -> AGeom.Vector3d.t
      val ( - ) : AGeom.Vector3d.t -> AGeom.Vector3d.t -> AGeom.Vector3d.t
      val ( * ) : AGeom.Vector3d.t -> float -> AGeom.Vector3d.t
      val ( / ) : AGeom.Vector3d.t -> float -> AGeom.Vector3d.t
      val ( !. ) : AGeom.Vector3d.t -> AGeom.Vector3d.t -> float
      val ( ~. ) : AGeom.Vector3d.t -> AGeom.Vector3d.t
      val ( ?. ) : float * float * float -> AGeom.Vector3d.t
    end
end