Dentaku is a parser and evaluator for mathematical formulas
Color is a Ruby library to provide basic RGB, CMYK, HSL, and other colourspace manipulation support to applications that require it. It also provides 152 named RGB colours (184 with spelling variations) that are commonly supported in HTML, SVG, and X11 applications. A technique for generating monochromatic contrasting palettes is also included. The Color library performs purely mathematical manipulation of the colours based on colour theory without reference to colour profiles (such as sRGB or Adobe RGB). For most purposes, when working with RGB and HSL colour spaces, this won't matter. Absolute colour spaces (like CIE L*a*b* and XYZ) and cannot be reliably converted to relative colour spaces (like RGB) without colour profiles. Color 1.8 adds an alpha parameter to all <tt>#css_rgba</tt> calls, fixes a bug exposed by new constant lookup semantics in Ruby 2, and ensures that <tt>Color.equivalent?</tt> can only be called on Color instances. Barring bugs introduced in this release, this (really) is the last version of color that supports Ruby 1.8, so make sure that your gem specification is set properly (to <tt>~> 1.8</tt>) if that matters for your application. This version will no longer be supported one year after the release of color 2.0.
A very fast way to turn TeX math equations into beautifully rendered SVGs, to embed on the web. This library is mostly written in C and is a general purpose wrapper to GNOME's Lasem.
An Asciidoctor extension to converts latexmath equations to SVG or PNGs
Library that provides more mathematical functions/algorithms than standard Ruby.
"MDArray is a multi dimensional array implemented for JRuby inspired by NumPy (www.numpy.org) and Masahiro Tanaka´s Narray (narray.rubyforge.org). MDArray stands on the shoulders of Java-NetCDF and Parallel Colt. At this point MDArray has libraries for linear algebra, mathematical, trigonometric and descriptive statistics methods. NetCDF-Java Library is a Java interface to NetCDF files, as well as to many other types of scientific data formats. It is developed and distributed by Unidata (http://www.unidata.ucar.edu). Parallel Colt (http://grepcode.com/snapshot/repo1.maven.org/maven2/net.sourceforge.parallelcolt/ parallelcolt/0.10.0/) is a multithreaded version of Colt (http://acs.lbl.gov/software/colt/). Colt provides a set of Open Source Libraries for High Performance Scientific and Technical Computing in Java. Scientific and technical computing is characterized by demanding problem sizes and a need for high performance at reasonably small memory footprint." For more information and (some) documentation please go to: https://github.com/rbotafogo/mdarray/wiki
A gem to evaluate mathematical equations. Includes support for variables and functions.
Calc is safe, simple, pure-ruby mathematical expressions evaluator (calculator) library. Although based on Ruby 'eval', it takes special care to sanitize the expression.
Perfect Shape is a collection of pure Ruby geometric algorithms that are mostly useful for GUI manipulation like checking viewport rectangle intersection or containment of a mouse click point in popular geometry shapes such as rectangle, square, arc (open, chord, and pie), ellipse, circle, polygon, and paths containing lines, quadratic bézier curves, and cubic bezier curves, potentially with affine transforms applied like translation, scale, rotation, shear/skew, and inversion (including both the Ray Casting Algorithm, aka Even-odd Rule, and the Winding Number Algorithm, aka Nonzero Rule). Additionally, it contains some purely mathematical algorithms like IEEEremainder (also known as IEEE-754 remainder).
Includes collection of mathematical methods
Use advanced mathematical functions in Compass.
Graphics provides a simple framework to implement games and/or simulations and is designed to follow mathematical conventions, NOT game programming conventions. Particularly it: * Uses degrees. * Draws in quadrant 1 (0-90 degrees). * Right hand rule: 0 degrees is east, 90 is north, etc. These allow simple things like Trigonometry functions to work as expected. It means that all that stuff you were taught in grade school still work as intended. This makes one less thing you have to adjust when implementing your simulation.
Mathematical library to deal with basic problems in algebla.
Discrete Mathematics REPL and built-in usable library for experimental projects
Convert characters + font shifts to Plane 1 Mathematical Alphanumeric Symbols
Jazz theory is a mathematical system of concepts and relationships, why not make an ActiveModel representation of those concepts?
A Sass implementation of mathematical functions.
This project is still in early development. Only the mathematical side is complete. eg: Time.now + 3.years + 2.months
This gem provides bindings to the Yeppp! library. According to the documentation, "Yeppp! is a high-performance SIMD-optimized mathematical library for x86, ARM, and MIPS processors on Windows, Android, Mac OS X, and GNU/Linux systems."
This is a library for mathematical computations. Our purpose is to express the mathematical object naturally in Ruby. Though it is not operated fast, we can see the algorithm of the mathematical processing not in black box but in scripts. This library is in development stage.
A collection of useful Mathematical and Vector tools in 2D space
Mathematical expression evaluator for infix notation
This utility/library search mathematical reviews sites and fetches metadata about articles. It can return results as one of text, xml, html, yaml, json or ruby formats.
Wrapper around Math module; Has additional methods.
This gem defines graph classes which are useful in various mathematical applications.
Cinch Plugin to alow users to pass mathematical problems to the bot for evaluation
A short series of mathematical functions
Provide mathematics functions and utilities for Theory of Number. Analysis. Geometry ...
Contains a text parser for converting various measurements into a base unit, as well as doing several mathematical functions with those numbers
Abstract Graph is a graphing library that can create mathematical graphs and perform operatations on them.
Pampa is a Ruby library for async & distributing computing providing the following features: - cluster-management with dynamic reconfiguration (joining and leaving nodes); - distribution of the computation jobs to the (active) nodes; - error handling, job-retry and fault tolerance; - fast (non-direct) communication to ensure realtime capabilities. The Pampa framework may be widely used for: - large scale web scraping with what we call a "bot-farm"; - payments processing for large-scale ecommerce websites; - reports generation for high demanded SaaS platforms; - heavy mathematical model computing; and any other tasks that requires a virtually infinite amount of CPU computing and memory resources. Find documentation here: https://github.com/leandrosardi/pampa
Ruby developers have, for as long as I can remember, had a disheveled heap of scientific and mathematical libraries - many of which operate in pure ruby code. Given a problem we either kludge together some cobbled mess or turn to Python/R/etc. And to this I say no more! rb_maxima allows a ruby developer to directly leverage the unbridled power of the open source, lisp powered, computer algebra system that is Maxima!
This is a series of methods and extensions I've written or collected from various sources over time to help me mainly in solving Project Euler problems and other mathematical games. In case you are wondering about the name, boQwIj is Klingon for _my_assistant_, which is what these methods do for me when solving problems.
The GreaterLess Gem allows for making comparisons between floats and half-open intervals and apply simple arithmetics to the intervals preserving their mathematical meaning.
Arbitrary precision mathematics with application to real and complex linear algebra, graphical representation of functions, and 2D Kepler motion
AMoR is a Ruby DSL for mathematical programming. It allows to simply define a mathematical program, but gives you all the features from Ruby for more complex projects
Aldebaran is Web-development DSL micro-framework written with Mathematical Constructions
Ruby mathematics
Mathematical expression evaluator
== ICU4R - ICU Unicode bindings for Ruby ICU4R is an attempt to provide better Unicode support for Ruby, where it lacks for a long time. Current code is mostly rewritten string.c from Ruby 1.8.3. ICU4R is Ruby C-extension binding for ICU library[1] and provides following classes and functionality: * UString: - String-like class with internal UTF16 storage; - UCA rules for UString comparisons (<=>, casecmp); - encoding(codepage) conversion; \ - Unicode normalization; - transliteration, also rule-based; Bunch of locale-sensitive functions: - upcase/downcase; - string collation; \ - string search; - iterators over text line/word/char/sentence breaks; \ - message formatting (number/currency/string/time); - date and number parsing. * URegexp - unicode regular expressions. * UResourceBundle - access to resource bundles, including ICU locale data. * UCalendar - date manipulation and timezone info. * UConverter - codepage conversions API * UCollator - locale-sensitive string comparison == Install and usage > ruby extconf.rb > make && make check > make install Now, in your scripts just require 'icu4r'. To create RDoc, run > sh tools/doc.sh == Requirements To build and use ICU4R you will need GCC and ICU v3.4 libraries[2]. == Differences from Ruby String and Regexp classes === UString vs String 1. UString substring/index methods use UTF16 codeunit indexes, not code points. 2. UString supports most methods from String class. Missing methods are: capitalize, capitalize!, swapcase, swapcase! %, center, ljust, rjust chomp, chomp!, chop, chop! \ count, delete, delete!, squeeze, squeeze!, tr, tr!, tr_s, tr_s! crypt, intern, sum, unpack dump, each_byte, each_line hex, oct, to_i, to_sym reverse, reverse! succ, succ!, next, next!, upto 3. Instead of String#% method, UString#format is provided. See FORMATTING for short reference. 4. UStrings can be created via String.to_u(encoding='utf8') or global u(str,[encoding='utf8']) calls. Note that +encoding+ parameter must be value of String class. 5. There's difference between character grapheme, codepoint and codeunit. See UNICODE reports for gory details, but in short: locale dependent notion of character can be presented using more than one codepoint - base letter and combining (accents) (also possible more than one!), and each codepoint can require more than one codeunit to store (for UTF8 codeunit size is 8bit, though \ some codepoints require up to 4bytes). So, UString has normalization and locale dependent break iterators. 6. Currently UString doesn't include Enumerable module. 7. UString index/[] methods which accept URegexp, throw exception if Regexp passed. 8. UString#<=>, UString#casecmp use UCA rules. === URegexp UString uses ICU regexp library. Pattern syntax is described in [./docs/UNICODE_REGEXPS] and ICU docs. There are some differences between processing in Ruby Regexp and URegexp: 1. When UString#sub, UString#gsub are called with block, special vars ($~, $&, $1, ...) aren't set, as their values are processed through deep ruby core code. Instead, block receives UMatch object, which is essentially immutable array of matching groups: "test".u.gsub(ure("(e)(.)")) do |match| \ puts match[0] # => 'es' <--> $& puts match[1] # => 'e' \ <--> $1 puts match[2] # => 's' <--> $2 end 2. In URegexp search pattern backreferences are in form \n (\1, \2, ...), in replacement string - in form $1, $2, ... NOTE: URegexp considers char to be a digit NOT ONLY ASCII (0x0030-0x0039), but any Unicode char, which has property Decimal digit number (Nd), e.g.: a = [?$, 0x1D7D9].pack("U*").u * 2 puts a.inspect_names <U000024>DOLLAR SIGN <U01D7D9>MATHEMATICAL DOUBLE-STRUCK DIGIT ONE <U000024>DOLLAR SIGN <U01D7D9>MATHEMATICAL DOUBLE-STRUCK DIGIT ONE puts "abracadabra".u.gsub(/(b)/.U, a) abbracadabbra \ 3. One can create URegexp using global Kernel#ure function, Regexp#U, Regexp#to_u, or from UString using URegexp.new, e.g: /pattern/.U =~ "string".u 4. There are differences about Regexp and URegexp multiline matching options: t = "text\ntest" # ^,$ handling : URegexp multiline <-> Ruby default t.u =~ ure('^\w+$', URegexp::MULTILINE) => #<UMatch:0xf6f7de04 @ranges=[0..3], @cg=[\u0074\u0065\u0078\u0074]> t =~ /^\w+$/ => 0 # . matches \n : URegexp DOTALL <-> /m t.u =~ ure('.+test', URegexp::DOTALL) \ => #<UMatch:0xf6fa4d88 ... t.u =~ /.+test/m 5. UMatch.range(idx) returns range for capturing group idx. This range is in codeunits. === References 1. ICU Official Homepage http://ibm.com/software/globalization/icu/ 2. ICU downloads \ http://ibm.com/software/globalization/icu/downloads.jsp 3. ICU Home Page http://icu.sf.net 4. Unicode Home Page http://www.unicode.org ==== BUGS, DOCS, TO DO The code is slow and inefficient yet, is still highly experimental, so can have many security and memory leaks, bugs, inconsistent documentation, incomplete test suite. Use it at your own risk. Bug reports and feature requests are welcome :) === Copying This extension module is copyrighted free software by Nikolai Lugovoi. You can redistribute it and/or modify it under the terms of MIT License. Nikolai Lugovoi <meadow.nnick@gmail.com>
Parses simple mathematical expressions, creates a fully object-oriented expression tree. Evaluation can have injected variables.
A beautiful api to work with mathematical series.
A calculator supporting mathematical expressions, variables, functions and rudimentary plotting
Mathematical expression parser and executor
Ruby bindings for calc, an arbitrary precision maths library. ruby-calc provides access to a the large number of mathematical functions that come with calc.
Usually Resque workers work on queues in the given order (if there is something in the first, work it, otherwise if the there is something in the second, work on it, and so on). This plugin randomizes the order of the queues based on weights, so that a given queue will be the first queue to try based on a probability weight. Given queues A, B, C, D and weights 4, 3, 2, 1, repsectively, A will be first 40% of the time, B 30%, C 20%, and D 10%. In addition, when B is first, A will be second 4/7ths of the time (4 / [4+2+1]), and so on. The project is inspired by resque-fairly, which unfortunately mathematically does not give you this control over the weights.
Mathematical part of obtaining solar geometry information
If you need to create simple (in the mathematical sense), weighted graphs with random values for the connections and weights then this is the gem for you.
This gem allows perform mathematical operations in the field.
Provides various overloads, classes and methods to allow for more complex mathematics