Compatibility
Minecraft: Java Edition
1.21–1.21.1
1.20.3–1.20.6
Platforms
Creators
Details
Licensed GPL-3.0-or-later
Published 2 years ago
Updated last year
Tarso is a library datapack containing general mathematical utilities for score calculations without using macro functions.
Usage
Calculation
To calculation, put the score in math.target and (maybe) math.source, then call operations, the score returned will be presented in math.target.
| Operation | Function | General Expression | Desciption |
|---|---|---|---|
| Left Shift | math:ls |
math.target = math.target >> math.source |
|
| Right Shift | math:rs |
math.target = math.target << math.source |
|
| Addition | math:add |
math.target = math.target + math.source |
|
| Multiplication | math:mul |
math.target = math.target * math.source |
|
| Power | math:pow |
math.target = math.target ^ math.source |
|
| Subtraction | math:sub |
math.target = math.target - math.source |
|
| Division | math:div |
math.target = math.target / math.source |
|
| Logarithm | math:log |
math.target = log math.source (math.target) |
|
| Common Logarithm | math:lg |
math.target = log 10 (math.target) |
|
| Natural Logarithm | math:ln |
math.target = log 2 (math.target) |
|
| Square Root | math:sqrt |
math.target = sqrt(math.target) |
|
| Modulus | math:mod |
math.target = math.target % math.source |
|
| Remainder | math:rem |
math.target = math.target % math.source |
|
| Negativity | math:neg |
math.target = -math.target |
|
| Absolutation | math:abs |
math.target = (math.target < 0) ? -math.target : math.target |
|
| Sign | math:sig |
math.target = math.target / (math.target < 0) ? -math.target : math.target |
|
| Factorial | math:fact |
math.target = math.target! |
|
| Permutation | math:perm |
math.target = P(math.target, math.source) |
|
| Combination | math:comb |
math.target = C(math.target, math.source) |
|
| Hypot | math:hyp |
math.target = sqrt(**math.target + **math.source) |
|
| Vector | math:vec |
math.x = CORDIC(math.target).x math.y = CORDIC(math.target).y |
Precision is controled by math.source. |
| Tangent | math:tan |
math.target = tan(math.target) |
Precision is controled by math.source. |
| Cotangent | math:cot |
math.target = cot(math.target) |
Precision is controled by math.source. |
| Sine | math:sin |
math.target = sin(math.target) |
Precision is controled by math.source. |
| Cosine | math:cos |
math.target = cos(math.target) |
Precision is controled by math.source. |
The Stack
Tarso comes with a stack of 16 sorts. To transfer scores, put the score in math.buffer before pushing and the score poped out will be presented in math.buffer.
| Operation | Function |
|---|---|
| Push | math:push |
| Pop | math:pop |
| Seek | math:seek |
Notes
-
Objectives other than those belong to the stack can be overwritten during calculations.
-
Pushing a score into the stack while it's full make no sense.
FAQ
1. Why is the natural logarithm inaccurate?
It cannot be fixed except using large-number calculation, which is extremely slow. Currently it has a base of 2.


