aboutsummaryrefslogtreecommitdiff
path: root/svg.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-11 11:13:56 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-11 11:15:22 -0500
commit740a873f9eeb02ae120aa9d6090076cfcce15a05 (patch)
treefe705812d4347e2bbb081b595b2bffbfe2c8fcb1 /svg.bqn
parent66bda3a2f3d7d68871c9c9857c101f8ac03bff00 (diff)
Vectorize FmtNum so it works on atoms or arrays
Diffstat (limited to 'svg.bqn')
-rw-r--r--svg.bqn24
1 files changed, 12 insertions, 12 deletions
diff --git a/svg.bqn b/svg.bqn
index 1f2dc7b7..2881a925 100644
--- a/svg.bqn
+++ b/svg.bqn
@@ -19,19 +19,19 @@ Enc ← {
}
Void ← {∾⟨"<",𝕩,"/>"⟩}
-FmtNum ← {
- ! 0=≡𝕩
- ! (¯∞⊸< ∧ <⟜∞) 𝕩
- d ← 3 ⋆˜ b←10 # Base 10, up to 3 decimals
- _base ← {⌽b|⌊∘÷⟜b⍟(↕𝔽)} # 𝔽 is the number of digits
- fl ← ⌊ abs ← (÷2×d) + |𝕩
- ∾ ⟨
- (𝕩<0) / "-"
- '0' + (1+·⌊b⋆⁼1⌈⊢)_base fl
- 0⊸<◶""‿("." ∾ '0' + · ∨`⌾⌽∘×⊸/ 3 _base) ⌊ d × abs-fl
+FmtNums ← {
+ ! ∧´ (¯∞⊸< ∧ <⟜∞) 𝕩
+ k←3⋆˜b←10
+ m‿p←"-."-'0'
+ s←𝕩<0⋄a←|𝕩⋄v←⌊0.5+k×a
+ ⊔⟜('0'⊸+)´<∘∾˘⍉∾⟨
+ ≍≍○<⟜(m¨)/s
+ ↕∘≠⊸{f←b≤𝕩⋄(∨´f)◶⟨≍,𝕊⟜(⌊÷⟜b)○(f⊸/)´∾b⊸|⌾(⊑⌽)⟩𝕨‿𝕩}⌊v÷k
+ p¨⌾(⊑⌽)∘⊏⊸∾⍟(0<≠)↕∘≠⊸{f←×𝕩↩k|𝕩⋄𝕨(∨´f)◶⟨↕0‿2,(≍○<⟜(⌊÷⟜k)∾𝕊)⟜(b⊸×)○(f⊸/)⟩𝕩}v
}
-Fmt ← (2⌊≡)◶FmtNum‿(1↓·∾(' '∾FmtNum)¨)‿{𝕩⋄!0}
+FmtNum ← (2⌊≡)◶(⊑FmtNums∘⥊)‿(FmtNums⌾⥊)‿{𝕩⋄!0}
+Fmt ← (2⌊≡)◶FmtNum‿(1↓·∾' '∾¨FmtNum)‿{𝕩⋄!0}
At1 ← " " ∾ {∾⟨𝕨,"='",𝕩,"'"⟩}´
Attr ← ∾⟜(∾ <∘At1⎉1)
@@ -39,7 +39,7 @@ At ← {
_s ← {((+`׬)⊸-𝕗⊸=)⊸⊔}
𝕨 >⊘(∾⟜(∾At1¨)) '='_s¨ '|'_s 𝕩
}
-Pos ← ⟨"x","y"⟩ ≍˘ FmtNum¨
+Pos ← ⟨"x","y"⟩ ≍˘ FmtNum
Elt ← Void∘Attr
SVG ← {