orbitmines-physics 0.0.1.test.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +44 -0
- data/lib/orbitmines/physics/notation.rb +4 -0
- data/lib/orbitmines/physics/theorems.json +1 -0
- data/lib/orbitmines/physics/theorems.rb +18 -0
- data/lib/orbitmines/physics.rb +18733 -0
- metadata +47 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 63a0d9398fa66a77621d46d523dcde34b2d06f678c1f75311fb2a36ad9680980
|
|
4
|
+
data.tar.gz: 332920541260bd980c0beb27e6286d683467304a27f60327173b69995a1e2787
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 297fb031cfc5526f73d34f1717bd4600e34dc4ff105d9532fc5da2f2912b52746d89aa9cc79db2976a1c802d762756e4cbf08bf18c56fd71e5653ba5a8b2211d
|
|
7
|
+
data.tar.gz: 9905f0e9a17e1d3eee60f1c7b10d859c405b40461c12c5f6ea38b02b737c0825d43a938c6a078a5a6242441b7c97610675e55e45e3bf63e0cc420013b55b679d
|
data/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# orbitmines-physics - Ruby
|
|
2
|
+
|
|
3
|
+
> Generated by `npx ray gen` from [implementation/physics.ray](../../implementation/physics.ray/) and [implementation/gen](../../implementation/gen/). Do not edit - change the `.ray` and regenerate.
|
|
4
|
+
|
|
5
|
+
The physics library in Ruby: the theories and their rules, the continuous model derived from them (the medium), and the settings a simulation of sources - stars, planets, any bodies a theory has - is planned by. Back to the [project README](../../README.md).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Ruby
|
|
11
|
+
gem install orbitmines-physics
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Or in a Gemfile: `gem "orbitmines-physics"`. Ruby 3.1 or later.
|
|
15
|
+
|
|
16
|
+
## Using it
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
require "orbitmines/physics"
|
|
20
|
+
include OrbitMines::Physics
|
|
21
|
+
|
|
22
|
+
# a theory, and its continuous model on the CPU: a box of cells, the vacuum settled, one body in it
|
|
23
|
+
medium = G.medium(31, 96, 3, 8, 1)
|
|
24
|
+
medium.local_rays = true
|
|
25
|
+
medium.add(Hole.new(x: 15, y: 15, mx: 0.3, ways: 1))
|
|
26
|
+
medium.seed
|
|
27
|
+
5.times { medium.tick }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Names Ruby reserves are spelled with a leading underscore where they are a method's own (a parameter `N` is `_N`); members keep their names (`medium.N`).
|
|
31
|
+
|
|
32
|
+
## A simulation of sources: the plan
|
|
33
|
+
|
|
34
|
+
A run is set by a `Plan`: how many sources, how big a box, and four kinds of setting - `Resolution` (how finely the medium reads), `Budget` (how much of the device it may take), `Batching` (how a run larger than the device is carried) and `Output` (what comes back). The plan says what the device must hold before anything runs.
|
|
35
|
+
|
|
36
|
+
```ruby
|
|
37
|
+
plan = Plan.new(sources: 1e9, side: 241)
|
|
38
|
+
plan.budget.compact = true # twelve bytes a source
|
|
39
|
+
puts plan.report(16 * 2**30, 2**31)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## On the GPU
|
|
43
|
+
|
|
44
|
+
The GPU runtime of the medium is being carried into `.ray`, so that every language runs the same thing on every backend. Until then it runs from the [TypeScript package](../physics.ts/README.md).
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# orbitmines/physics/notation - the markup a proof is set in: `Notation.parse(src)` reads it into pieces,
|
|
2
|
+
# `Notation.html(src)` sets it for a page, `Notation.set(pieces, setter)` walks it through a Setter of your own.
|
|
3
|
+
# GENERATED by `npx ray gen` from implementation/physics.ray. Do not edit.
|
|
4
|
+
require "orbitmines/physics"
|