Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Make hardwired tolerances configurable via a tol parameter (in units of eps)

Aberta
#268 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Start by auditing the package for literal tolerances and calls that rely on lower-level defaults, then trace how tolerance flows through base, SO3, SE3, and UnitQuaternion; the issue names UnitQuaternion.AngVec, SO3.AngleAxis, SE3.AngleAxis, and angvec2tr as examples. Add tol where a tolerance affects results, preserving current defaults and documenting it. Add a test for each changed function showing that tol takes effect.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

Summary

Any function that applies a hardwired numerical tolerance should expose it as a tol parameter, expressed in units of machine epsilon (eps), so that callers can tighten or loosen it for their application.

Convention

The base module already follows this pattern in places, for example unitvec, iszero, iszerovec, isunitvec and angvec2r: tol is a multiple of eps (default 20), and a quantity is treated as zero when abs(x) < tol * eps. This issue is to apply it consistently.

Scope

  • Audit the package for literal tolerances (e.g. 1e-6, 1e-12), and for calls that rely on the default tolerance of a lower-level function.
  • Where a tolerance affects the result, add a tol parameter in units of eps, with a default that preserves current behaviour, and document it in the docstring.
  • Where the tolerance is used deep inside a base function, pass tol through every intermediate function, so a caller of a high-level method such as an SO3 or UnitQuaternion constructor can still control it. This may require adding the parameter to several functions in a call chain.

Example

UnitQuaternion.AngVec (see #266) now tests the angle with smb.iszero(theta), which uses the default tolerance. A caller cannot change it. It should accept tol and pass it to iszero, and the same applies to SO3.AngleAxis, SE3.AngleAxis and angvec2tr, which call angvec2r (which already has tol, see #267) but do not expose it.

Notes

  • Keep defaults unchanged so there is no behaviour change for existing code.
  • Add a test per changed function showing that tol takes effect.

🤖 Generated with Claude Code

Linguagem predominante
Python
Estrelas
648
Forks
108
Merge médio
9d 19h
PRs com merge (30d)
9

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rai-opensource/spatialmath-python

Todas as issues de rai-opensource/spatialmath-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.