{"id":13398525,"url":"https://github.com/r-cas/ryacas","last_synced_at":"2025-10-22T06:23:32.211Z","repository":{"id":32486663,"uuid":"36067045","full_name":"r-cas/ryacas","owner":"r-cas","description":"Ryacas: R Interface to the Yacas Computer Algebra System","archived":false,"fork":false,"pushed_at":"2023-06-21T10:03:18.000Z","size":7085,"stargazers_count":37,"open_issues_count":14,"forks_count":8,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-09-05T02:01:22.737Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r-cas.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-05-22T10:41:08.000Z","updated_at":"2024-09-03T04:18:01.000Z","dependencies_parsed_at":"2024-01-18T11:02:45.668Z","dependency_job_id":"a446c308-67c1-4a50-adbc-d2d023656504","html_url":"https://github.com/r-cas/ryacas","commit_stats":{"total_commits":389,"total_committers":8,"mean_commits":48.625,"dds":"0.48843187660668386","last_synced_commit":"37bf719e551b33cef5dfae26d78e6eab6ce860a5"},"previous_names":["mikldk/ryacas"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-cas%2Fryacas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-cas%2Fryacas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-cas%2Fryacas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-cas%2Fryacas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r-cas","download_url":"https://codeload.github.com/r-cas/ryacas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242956530,"owners_count":20212455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T19:00:27.970Z","updated_at":"2025-10-22T06:23:27.182Z","avatar_url":"https://github.com/r-cas.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit only README.Rmd! --\u003e\n\n```{r, echo = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  message = FALSE\n)\n```\n\n```{r, echo = FALSE}\nlibrary(Ryacas)\n```\n\n\n# Ryacas #\n\n[![Build Status](https://travis-ci.org/r-cas/ryacas.svg?branch=master)](https://travis-ci.org/r-cas/ryacas)\n[![Build status](https://ci.appveyor.com/api/projects/status/c8fsb1dvj5gmh703/branch/master?svg=true)](https://ci.appveyor.com/project/r-cas/ryacas/branch/master)\n[![JOSS status](https://joss.theoj.org/papers/69b3947f8900504a25aa36f65d14500b/status.svg)](https://joss.theoj.org/papers/69b3947f8900504a25aa36f65d14500b)\n[![DOI](https://zenodo.org/badge/36067045.svg)](https://zenodo.org/badge/latestdoi/36067045)\n\nRyacas is an [R](https://www.r-project.org/) interface to\nthe free [yacas](http://www.yacas.org) Computer Algebra\nSystem.  Ryacas allows one to send unprocessed yacas strings and \ncertain other R objects to\nyacas process from R and get back the result. It also has\nfacilities for manipulating yacas strings and R expressions\ndestined for yacas processing.\n\nIt can be used for arbitrary-precision arithmetic, symbolic math, ASCII\npretty printing and translating R to TeX. \n\n## Install from GitHub ##\n\nTo build and install from Github using R 3.3.0 (or later) and the R `devtools` package 1.11.0 (or later) run this command from within `R`:\n\n```\ndevtools::install_github(\"r-cas/ryacas\", \n                         build_opts = c(\"--no-resave-data\", \"--no-manual\"))\n```\n\nYou can also install the package without vignettes if needed as follows:\n\n```\ndevtools::install_github(\"r-cas/ryacas\")\n```\n\n\n## Online info ##\n\nFor vignettes, overview, pointers to additional information, installation\ninstructions and a sample session see \u003chttp://r-cas.github.io/ryacas/\u003e. \n\nYacas documentation can be found at http://yacas.readthedocs.org/.\n\n## Contribute, issues, and support ##\n\nPlease use the issue tracker at \u003chttps://github.com/r-cas/ryacas/issues\u003e \nif you want to notify us of an issue or need support.\nIf you want to contribute, please either create an issue or make a pull request.\n\n## Brief examples ##\n\nBelow we show a few examples. \nWe highly recommend reading the \"[Getting started](http://r-cas.github.io/ryacas/articles/getting-started.html)\" vignette (and the other vignettes) for a more thorough introduction to the package.\n\nThere are two interfaces: a high-level interface that \nmakes `yacas` objects work similar to `R` objects, \nand a low-level interface where the user can write `yacas` code \nand get results as strings or as `R` expressions. Below, we demonstrate both.\n\n### High-level interface\n\nA brief example with a polynomial is:\n```{r}\nx \u003c- ysym(\"x\")\np \u003c- x^2+x-6\np\ny_fn(p, \"Factor\")\np %\u003e% y_fn(\"Factor\")\np %\u003e% as_r()\n```\n\nA small matrix example follows:\n\n```{r}\nA \u003c- outer(0:3, 1:4, \"-\") + diag(2:5)\na \u003c- 1:4\nB \u003c- ysym(A)\nB\nsolve(B)\nB[2, 3] \u003c- \"x\"\nB\nb \u003c- ysym(a)\nb[1] \u003c- \"x\"\nb\nB %*% b\nt(B)\nB[, 2:3]\n```\n\n\n### Low-level interface\n\nReturning strings with `yac_str()`:\n\n```{r}\nyac_str(\"x+x+x+x\")\nyac_str(\"Factor(x^2+x-6)\")\nyac_str(\"D(x) x^2+x-6\")\n```\n\nReturning `R` expressions with `yac_expr()`:\n\n```{r}\nyac_expr(\"x+x+x+x\")\neval(yac_expr(\"x+x+x+x\"), list(x = 4))\nyac_expr(\"Factor(x^2+x-6)\")\nyac_expr(\"D(x) x^2+x-6\")\n```\n\nUsing functions easier (using [`magrittr`](https://cran.r-project.org/package=magrittr)'s pipe, `%\u003e%`):\n\n```{r}\n\"x^2+x-6\" %\u003e% y_fn(\"Factor\") %\u003e% yac_str()\n\"x^2+x-6\" %\u003e% y_fn(\"D(x)\") %\u003e% yac_expr()\n```\n\nSolving equations (removes the `x==` from `yacas` with the `y_rmvars()` function):\n\n```{r}\nsol \u003c- yac_str(\"Solve(x^2+x-6 == 0, x)\")\nsol\nsol %\u003e% y_rmvars() %\u003e% yac_str()\nsol %\u003e% y_rmvars() %\u003e% yac_expr()\nsol %\u003e% y_rmvars() %\u003e% yac_expr() %\u003e% eval()\n```\n\nAnd output in TeX:\n\n```{r}\n\"3/4 + Pi/8\" %\u003e% y_fn(\"Simplify\") %\u003e% y_fn(\"TeXForm\") %\u003e% yac_str()\n```\n\nAnd arbitrary precision (see also the \"[Arbitrary-precision arithmetic\n](http://r-cas.github.io/ryacas/articles/arbitrary-precision.html)\" vignette):\n\n```{r}\nyac_str(\"N(Pi, 50)\")\n```\n\n\n\n## Yacas ##\n\nThe package contains the yacas distribution. The development of the yacas source code is available at \u003chttps://github.com/grzegorzmazur/yacas/\u003e . For more information on yacas see \u003chttp://www.yacas.org/\u003e or the documention directly at \u003chttps://yacas.readthedocs.io/\u003e.\n\n---\n\nMikkel Meyer Andersen, mikl at math dot aau dot dk  \nRob Goedman, goedman at mac dot com  \nGabor Grothendieck, ggrothendieck at gmail dot com  \nSøren Højsgaard, sorenh at math dot aau dot dk  \nAyal Pinkus, apinkus at xs4all dot nl  \nGrzegorz Mazur, teoretyk at gmail dot com  \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-cas%2Fryacas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr-cas%2Fryacas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-cas%2Fryacas/lists"}