Connection
Base URL, credentials and a reachable server.
DecayMarsh is a Windows AI coding client for reviewing bounded numerical steps. Use a compatible endpoint to discuss slope calculations, inspect the resulting edits and compare them with an analytic reference.
def decay_steps(initial, rate, dt, steps):
if any(type(v) not in (int, float) for v in (initial, rate, dt)):
raise ValueError("decay.numeric")
if not -10**6 <= initial <= 10**6 or not 0 <= rate <= 1000 or not 0 <= dt <= 1 or rate * dt > 1:
raise ValueError("decay.range")
if type(steps) is not int or not 0 <= steps <= 1000:
raise ValueError("decay.steps")
y = float(initial)
for _ in range(steps):
k1 = -rate * y
k2 = -rate * (y + dt*k1/2)
k3 = -rate * (y + dt*k2/2)
k4 = -rate * (y + dt*k3)
y += dt*(k1 + 2*k2 + 2*k3 + k4)/6
return yBase URL, credentials and a reachable server.
Check zero steps and zero rate, reject negative values for rate or step size and reject their product above one.
Compare actual behavior with the expected result. If a check fails, investigate it before applying more changes.
def decay_steps(initial, rate, dt, steps):
if any(type(v) not in (int, float) for v in (initial, rate, dt)):
raise ValueError("decay.numeric")
if not -10**6 <= initial <= 10**6 or not 0 <= rate <= 1000 or not 0 <= dt <= 1 or rate * dt > 1:
raise ValueError("decay.range")
if type(steps) is not int or not 0 <= steps <= 1000:
raise ValueError("decay.steps")
y = float(initial)
for _ in range(steps):
k1 = -rate * y
k2 = -rate * (y + dt*k1/2)
k3 = -rate * (y + dt*k2/2)
k4 = -rate * (y + dt*k3)
y += dt*(k1 + 2*k2 + 2*k3 + k4)/6
return yA numerical result can look reasonable while drifting away from the behavior the application intends to model. DecayMarsh provides a Windows AI coding workspace for examining that risk in source. Open the project and discuss the update rule, accepted parameters and reference result before asking a connected model to change the implementation.
For example, request a review of bounded Runge–Kutta steps for a decay calculation. Show the slope expressions and explain the intended interval and number of steps. Ask the model to inspect how intermediate values feed the next slope, then relate the final value to an independently computed reference for a simple case.
Keep the application boundary part of the review. Parameter limits, zero steps and invalid numeric values need deliberate behavior, especially when inputs arrive from a form or configuration file. Inspect the proposed diff and run checks for both ordinary and limiting cases. Describe comparison tolerances explicitly so a passing assertion has a clear numerical meaning.
DecayMarsh supports OpenAI-compatible or Anthropic model endpoints, including an available uncensored AI model. The selected model and server determine capabilities and context limits. Use the conversation to make assumptions visible and prepare changes, while your project execution and reference comparison establish whether the implementation meets its requirements.
Use a case with an independently known result and state the comparison tolerance. Include the parameters and number of steps. A second implementation copied from the same expressions may repeat the same mistake rather than provide independent evidence.
Specify the contract directly and verify it in the caller. For a step-based update, retaining the initial value is a useful expected case to discuss. Check that proposed validation does not accidentally reject a permitted zero-step request.
An incorrect intermediate dependency can occasionally produce a plausible final number. Ask the model to trace a short case through the expressions and compare it with the source. Then run the relevant numerical checks in your environment.
It can discuss a proposal, but the tolerance must reflect your application’s needs and the computation. Record the chosen comparison rule and its rationale. Avoid accepting an arbitrary loose threshold merely because it makes the test pass.
DecayMarsh · Updated 2026-10-25