<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[mshih&#x27;s aa1942calc2]]></title><description><![CDATA[<p dir="auto">I’ve also been working on a calculator based on math.</p>
<p dir="auto">Here’s a link:  <a href="https://mshih01.github.io/aacalc2/" target="_blank" rel="noopener noreferrer nofollow ugc">https://mshih01.github.io/aacalc2/</a></p>
<p dir="auto">It has most of the features of <a href="http://aa1942calc.com" target="_blank" rel="noopener noreferrer nofollow ugc">aa1942calc.com</a>… multiwave support, rounds of battle, amphibious assault.   (the missing feature is the monte carlo analysis to support extra large battles )</p>
<p dir="auto">It also has advanced retreat options…<br />
number of rounds.<br />
number of attacking units &lt;=<br />
expected profit continuing &lt; threshold<br />
probability of winning &lt; threshold<br />
probability of losing air &gt; threshold.<br />
probability of killing defenders &gt; threshold (strafe analysis).</p>
<p dir="auto">The territory can also be marked as deadzone in the profit computation – in which case attacking captured land units count inf(-2), art(-3), arm(-4.5) towards the profit computation.</p>
<p dir="auto">I think it’s even faster than your implementation.   If you like, we can discuss implementation details.</p>
]]></description><link>https://www.axisandallies.org/forums/topic/42461/mshih-s-aa1942calc2</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 16:56:47 GMT</lastBuildDate><atom:link href="https://www.axisandallies.org/forums/topic/42461.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Apr 2026 21:06:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Sat, 25 Apr 2026 05:22:00 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.axisandallies.org/forums/uid/2355">@mshih</a> Yeah, I’m trying to update the calculator to use some of your techniques.</p>
<p dir="auto">I started with som benchmarks, yours blew mine out of the water. Your two subs got 2s and sunk my battleship.</p>
<p dir="auto">Really nice work! You can probably guess which column is yours.</p>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td><code>tiny-3v3</code></td>
<td style="text-align:right">2.47</td>
<td style="text-align:right">0.17</td>
<td style="text-align:right">14.7×</td>
</tr>
<tr>
<td><code>small-mixed</code></td>
<td style="text-align:right">7.27</td>
<td style="text-align:right">0.34</td>
<td style="text-align:right">21.6×</td>
</tr>
<tr>
<td><code>medium-mixed</code></td>
<td style="text-align:right">74.9</td>
<td style="text-align:right">1.20</td>
<td style="text-align:right">62.3×</td>
</tr>
<tr>
<td><code>aa-medium</code></td>
<td style="text-align:right">265.1</td>
<td style="text-align:right">2.07</td>
<td style="text-align:right">127.9×</td>
</tr>
<tr>
<td><code>aa-heavy</code></td>
<td style="text-align:right">2484.7</td>
<td style="text-align:right">6.29</td>
<td style="text-align:right">394.9×</td>
</tr>
<tr>
<td><code>large-mixed</code></td>
<td style="text-align:right">538.9</td>
<td style="text-align:right">2.20</td>
<td style="text-align:right">245.5×</td>
</tr>
</tbody>
</table>
]]></description><link>https://www.axisandallies.org/forums/post/1800052</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1800052</guid><dc:creator><![CDATA[djensen]]></dc:creator><pubDate>Sat, 25 Apr 2026 05:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Sat, 25 Apr 2026 04:56:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.axisandallies.org/forums/uid/2">@djensen</a> Sure.   Even if you don’t directly use the engine., maybe you can take advantage  of some of the techniques?</p>
<p dir="auto">I think the speed of my engine is due to:</p>
<ol>
<li>Precompute everything up front<br />
For each node (unique sub-army)<br />
get any needed probability with an array lookup<br />
get the next state index for any casualty type with an array lookup.<br />
I don’t use any hash/maps in the tight inner loop.   Only for postprocessing the output, or preprocessing the input.</li>
<li>Pruning.   I use a pruning threshold 1e-12.   If a state’s seed probability is smaller than this threshold – I prune to zero – and don’t update child states.</li>
<li>Roundless evaluation.   I don’t roll multiple rounds of battle.  The 2-D probability matrix is solved only one time.</li>
</ol>
]]></description><link>https://www.axisandallies.org/forums/post/1800050</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1800050</guid><dc:creator><![CDATA[mshih]]></dc:creator><pubDate>Sat, 25 Apr 2026 04:56:03 GMT</pubDate></item><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Sat, 25 Apr 2026 04:21:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.axisandallies.org/forums/uid/2355">@mshih</a> Thanks. The engine won’t work for me because I support multiple games. I’m working on some changes.</p>
]]></description><link>https://www.axisandallies.org/forums/post/1800046</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1800046</guid><dc:creator><![CDATA[djensen]]></dc:creator><pubDate>Sat, 25 Apr 2026 04:21:18 GMT</pubDate></item><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Sat, 25 Apr 2026 01:34:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.axisandallies.org/forums/uid/2">@djensen</a> If you’re using typescript/javascript, my engine is available on npm.</p>
<p dir="auto">npm install aacalc2</p>
<p dir="auto">The webpage is basically something I vibe coded to showcase the engine.</p>
]]></description><link>https://www.axisandallies.org/forums/post/1800030</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1800030</guid><dc:creator><![CDATA[mshih]]></dc:creator><pubDate>Sat, 25 Apr 2026 01:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Sat, 25 Apr 2026 00:48:07 GMT]]></title><description><![CDATA[<p dir="auto">At the time of my post.   So last couple days.    For example.   Try 80 inf/art vs. 80 inf/art (160 vs. 160).   My calculator runs in 0.2 seconds.   I think yours currently crashes.   But if you reduce to 120 vs. 120 (60 each), then yours takes 10+ seconds.<br />
My calculator can handle 400 vs 400 (200 inf/art vs. 200 inf/art) in 10 seconds.</p>
<p dir="auto">You can check out my repo on github:  <a href="https://github.com/mshih01/aacalc2" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/mshih01/aacalc2</a></p>
<p dir="auto">The readme has a discussion on the algorithm… and it should be pretty fast – and memory efficient.</p>
<ul>
<li>Mitchell</li>
</ul>
]]></description><link>https://www.axisandallies.org/forums/post/1800028</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1800028</guid><dc:creator><![CDATA[mshih]]></dc:creator><pubDate>Sat, 25 Apr 2026 00:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to mshih&#x27;s aa1942calc2 on Fri, 24 Apr 2026 21:27:00 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.axisandallies.org/forums/uid/2355">@mshih</a> I’ve taken a few extra passes to improve the speed of my implementation. When is the last time you’ve tested it?</p>
]]></description><link>https://www.axisandallies.org/forums/post/1799996</link><guid isPermaLink="true">https://www.axisandallies.org/forums/post/1799996</guid><dc:creator><![CDATA[djensen]]></dc:creator><pubDate>Fri, 24 Apr 2026 21:27:00 GMT</pubDate></item></channel></rss>