{
  "_id": "6a1063c4acfb0bcc41ca85c3",
  "Package": "RSpincalc",
  "Type": "Package",
  "Title": "Conversion Between Attitude Representations of DCM, Euler\nAngles, Quaternions, and Euler Vectors",
  "Version": "1.0.2",
  "Encoding": "UTF-8",
  "Authors@R": "c(person(given = \"Jose\", family = \"Gama\", role = c(\"aut\",\"cre\"),email = \"rxprtgama@gmail.com\"),\nperson(given = \"John\", family = \"Fuller\", role = c(\"aut\",\"cph\")),\nperson(given = \"Paolo\", family = \"Leva\", role = c(\"aut\",\"cph\")))",
  "Description": "Conversion between attitude representations: DCM, Euler\nangles, Quaternions, and Euler vectors. Plus conversion between\n2 Euler angle set types (xyx, yzy, zxz, xzx, yxy, zyz, xyz,\nyzx, zxy, xzy, yxz, zyx). Fully vectorized code, with\nwarnings/errors for Euler angles (singularity, out of range,\ninvalid angle order), DCM (orthogonality, not proper, exceeded\ntolerance to unity determinant) and Euler vectors(not unity).\nAlso quaternion and other useful functions. Based on SpinCalc\nby John Fuller and SpinConv by Paolo de Leva.",
  "License": "GPL (>= 3)",
  "Author": "Jose Gama [aut, cre], John Fuller [aut, cph], Paolo Leva [aut,\ncph]",
  "Maintainer": "Jose Gama <rxprtgama@gmail.com>",
  "Repository/R-Forge/Project": "rspincalc",
  "Repository/R-Forge/Revision": "16",
  "Repository/R-Forge/DateTimeStamp": "2015-07-16 22:34:34",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-08 07:05:24 UTC",
    "User": "root"
  },
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2015-07-16 00:00:00 UTC",
  "RemoteUrl": "https://github.com/cran/RSpincalc",
  "RemoteRef": "HEAD",
  "RemoteSha": "6b7c30d6a4b2f45680c2a3cbc61ccfeb6d502244",
  "MD5sum": "9cdd0e4061d5c53b6cc1d66f197acf4d",
  "_user": "cran",
  "_type": "src",
  "_file": "RSpincalc_1.0.2.tar.gz",
  "_fileid": "1ef389f08afd684b30507a49509d1ede86c57e2d8fdb6fadcf060b5794b3b613",
  "_filesize": 171137,
  "_sha256": "1ef389f08afd684b30507a49509d1ede86c57e2d8fdb6fadcf060b5794b3b613",
  "_created": "2026-05-08T07:05:24.000Z",
  "_published": "2026-05-22T14:10:12.488Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77396708638,
      "time": 102,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6873772315"
    },
    {
      "job": 77396708834,
      "time": 142,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6873782134"
    },
    {
      "job": 77396708032,
      "time": 131,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6873745896"
    },
    {
      "job": 77396707920,
      "time": 80,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7162556788"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/25542037879",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/RSpincalc",
  "_commit": {
    "id": "6b7c30d6a4b2f45680c2a3cbc61ccfeb6d502244",
    "author": "Jose Gama <rxprtgama@gmail.com>",
    "committer": "Gabor Csardi <csardi.gabor@gmail.com>",
    "message": "version 1.0.2\n",
    "time": 1437004800
  },
  "_maintainer": {
    "name": "Jose Gama",
    "email": "rxprtgama@gmail.com"
  },
  "_registered": true,
  "_dependencies": [],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 1,
  "_updates": [],
  "_tags": [],
  "_stars": 0,
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 28719,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/RSpincalc"
  },
  "_searchresults": 41,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/RSpincalc.html",
    "manual.pdf"
  ],
  "_realowner": "cran",
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2014-02-11"
    },
    {
      "version": "1.0.1",
      "date": "2014-02-26"
    },
    {
      "version": "1.0.2",
      "date": "2015-07-17"
    }
  ],
  "_exports": [
    "%Q-%",
    "%Q.%",
    "%Q*%",
    "%Q/%",
    "%Q+%",
    "DCM2EA",
    "DCM2EV",
    "DCM2Q",
    "DCMrandom",
    "EA2DCM",
    "EA2EA",
    "EA2EV",
    "EA2Q",
    "EArandom",
    "EV2DCM",
    "EV2EA",
    "EV2Q",
    "EVrandom",
    "isPureQuaternion",
    "isPureRotationMatrix",
    "isRealQuaternion",
    "isUnitQuaternion",
    "Q2DCM",
    "Q2EA",
    "Q2EA.Xiao",
    "Q2EV",
    "Q2GL",
    "QangularDifference",
    "Qbezier",
    "Qconj",
    "Qexp",
    "Qinv",
    "Qlerp",
    "Qlog",
    "Qnorm",
    "Qnormalize",
    "Qone",
    "Qrandom",
    "Qrot",
    "Qslerp",
    "QslerpNoInvert",
    "Qspline",
    "Qsquad",
    "Qzero",
    "vectQrot"
  ],
  "_help": [
    {
      "page": "DCM2EA",
      "title": "Convert from Direction Cosine Matrix to Euler Angles",
      "topics": [
        "DCM2EA"
      ]
    },
    {
      "page": "DCM2EV",
      "title": "Convert from Direction Cosine Matrix to Euler Vectors",
      "topics": [
        "DCM2EV"
      ]
    },
    {
      "page": "DCM2Q",
      "title": "Convert from Direction Cosine Matrix to rotation Quaternions",
      "topics": [
        "DCM2Q"
      ]
    },
    {
      "page": "DCMrandom",
      "title": "Generate uniform random direction cosine matrices",
      "topics": [
        "DCMrandom"
      ]
    },
    {
      "page": "EA2DCM",
      "title": "Convert from Euler Angles to Direction Cosine Matrix",
      "topics": [
        "EA2DCM"
      ]
    },
    {
      "page": "EA2EA",
      "title": "Convert from Euler Angles to Euler Angles",
      "topics": [
        "EA2EA"
      ]
    },
    {
      "page": "EA2EV",
      "title": "Convert from Euler Angles to Euler Vectors",
      "topics": [
        "EA2EV"
      ]
    },
    {
      "page": "EA2Q",
      "title": "Convert from Euler Angles to rotation Quaternions",
      "topics": [
        "EA2Q"
      ]
    },
    {
      "page": "EArandom",
      "title": "Generate uniform random Euler Angles",
      "topics": [
        "EArandom"
      ]
    },
    {
      "page": "EV2DCM",
      "title": "Convert from Euler Vectors to Direction Cosine Matrix",
      "topics": [
        "EV2DCM"
      ]
    },
    {
      "page": "EV2EA",
      "title": "Convert from Euler Vectors to Euler Angles",
      "topics": [
        "EV2EA"
      ]
    },
    {
      "page": "EV2Q",
      "title": "Convert from Euler Vectors to rotation Quaternions",
      "topics": [
        "EV2Q"
      ]
    },
    {
      "page": "EVrandom",
      "title": "Generate uniform random Euler Vectors",
      "topics": [
        "EVrandom"
      ]
    },
    {
      "page": "isPureRotationMatrix",
      "title": "Determine if the variable is a pure rotation matrix",
      "topics": [
        "isPureQuaternion",
        "isPureRotationMatrix",
        "isRealQuaternion",
        "isUnitQuaternion"
      ]
    },
    {
      "page": "Q2DCM",
      "title": "Convert from rotation Quaternions to Direction Cosine Matrix",
      "topics": [
        "Q2DCM"
      ]
    },
    {
      "page": "Q2EA",
      "title": "Convert from rotation Quaternions to Euler Angles",
      "topics": [
        "Q2EA",
        "Q2EA.Xiao"
      ]
    },
    {
      "page": "Q2EV",
      "title": "Convert from rotation Quaternions to Euler Vectors",
      "topics": [
        "Q2EV"
      ]
    },
    {
      "page": "Q2GL",
      "title": "Convert from rotation Quaternions to OpenGL rotation matrix",
      "topics": [
        "Q2GL"
      ]
    },
    {
      "page": "QangularDifference",
      "title": "Angular difference between 2 quaternions",
      "topics": [
        "QangularDifference"
      ]
    },
    {
      "page": "Qconj",
      "title": "Quaternion conjugate",
      "topics": [
        "Qconj"
      ]
    },
    {
      "page": "Qinv",
      "title": "Quaternion inverse",
      "topics": [
        "Qinv"
      ]
    },
    {
      "page": "Qlerp",
      "title": "Linear quaternion interpolation",
      "topics": [
        "Qbezier",
        "Qlerp",
        "Qslerp",
        "QslerpNoInvert",
        "Qspline",
        "Qsquad"
      ]
    },
    {
      "page": "Qlog",
      "title": "Quaternion logarithm",
      "topics": [
        "Qexp",
        "Qlog"
      ]
    },
    {
      "page": "Qnorm",
      "title": "Norm of a quaternion",
      "topics": [
        "Qnorm"
      ]
    },
    {
      "page": "Qnormalize",
      "title": "Quaternion normalization",
      "topics": [
        "Qnormalize"
      ]
    },
    {
      "page": "Qrandom",
      "title": "Generate uniform random unit quaternions",
      "topics": [
        "Qrandom"
      ]
    },
    {
      "page": "Qrot",
      "title": "Updates current attitude quaternion",
      "topics": [
        "Qrot"
      ]
    },
    {
      "page": "Qzero",
      "title": "Generate zero-valued quaternions",
      "topics": [
        "Qone",
        "Qzero"
      ]
    },
    {
      "page": "vectQrot",
      "title": "Rotate a vector by a quaternion",
      "topics": [
        "vectQrot"
      ]
    },
    {
      "page": "z1",
      "title": "Quaternion multiplication",
      "topics": [
        "%Q*%"
      ]
    },
    {
      "page": "z2",
      "title": "Quaternion division",
      "topics": [
        "%Q/%"
      ]
    },
    {
      "page": "z3",
      "title": "Quaternion subtraction",
      "topics": [
        "%Q-%"
      ]
    },
    {
      "page": "z4",
      "title": "Quaternion addition",
      "topics": [
        "%Q+%"
      ]
    },
    {
      "page": "z5",
      "title": "Quaternion dot product",
      "topics": [
        "%Q.%"
      ]
    }
  ],
  "_rundeps": [],
  "_score": 3.548074425072233,
  "_indexed": true,
  "_nocasepkg": "rspincalc",
  "_universes": [
    "cran"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.2",
      "date": "2026-05-08T07:07:18.000Z",
      "distro": "noble",
      "commit": "6b7c30d6a4b2f45680c2a3cbc61ccfeb6d502244",
      "fileid": "74a107dbdd55c601ffe0cc1dfff032402b516bf5d4cca1a6750eec1160f30a95",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25542037879"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.0.2",
      "date": "2026-05-08T07:07:55.000Z",
      "distro": "noble",
      "commit": "6b7c30d6a4b2f45680c2a3cbc61ccfeb6d502244",
      "fileid": "6e78a2694a486b299ba463ec9dd0902e6e8d05c85000621ce90fd0b17af7fd00",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25542037879"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.2",
      "date": "2026-05-22T14:09:57.000Z",
      "commit": "6b7c30d6a4b2f45680c2a3cbc61ccfeb6d502244",
      "fileid": "21828484ac632770ae01a687cbc32785b71c94e934293d356ce7a82a202968f2",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25542037879"
    }
  ]
}