Skip to content

feat: support integer long division - #326

Open
Happypig375 wants to merge 1 commit into
masterfrom
issue-302-longdiv
Open

feat: support integer long division#326
Happypig375 wants to merge 1 commit into
masterfrom
issue-302-longdiv

Conversation

@Happypig375

Copy link
Copy Markdown
Collaborator

Summary

  • add semantic LongDivision and step records for bounded nonnegative integer division
  • parse canonical \longdiv{numerator}{denominator} in CTAN argument order with deterministic source-positioned errors
  • lay out the quotient, divisor bracket, underlined dividend, aligned subtraction work, and one final remainder
  • serialize and clone/equality round-trip the semantic atom
  • enforce a 28-digit input limit and reject zero denominators and malformed operands

Validation

  • LongDivisionTests: 22 passed
  • backend rendering/scaling tests: 14 passed
  • existing Skia and Avalonia golden suites: MathDisplay 96/96 and MathInline 96/96 per backend
  • new display and inline golden fixtures cover remainder/multi-row, internal-zero, exact, and short/zero-quotient division
  • malformed operand tests assert exact Unicode caret positions and error details
  • Release builds, scoped format checks, and git diff checks passed

Closes #302

@Happypig375 Happypig375 added Type/Enhancement A concrete change to CSharpMath behavior or capability. Area/Parsing LaTeX tokenization, parsing, commands, and serialization. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. labels Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area/Parsing LaTeX tokenization, parsing, commands, and serialization. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. Type/Enhancement A concrete change to CSharpMath behavior or capability.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Lay out integer long division with \longdiv

1 participant