Poindexter/docs/FAQ.md
google-labs-jules[bot] b78e2325fe docs: Audit and improve documentation
This commit addresses the need for more comprehensive documentation by first conducting an audit to identify gaps and then creating the necessary documentation to fill them.

The following files have been added:

-   `AUDIT-DOCUMENTATION.md`: A detailed audit of the project's documentation, evaluating its completeness and quality.
-   `ARCHITECTURE.md`: A high-level overview of the project's architecture, including a component diagram.
-   `docs/FAQ.md`: A frequently asked questions page to help users with common questions.
-   `docs/TROUBLESHOOTING.md`: A guide to help users troubleshoot common issues.

These additions will improve the overall quality of the project's documentation, making it more accessible and useful for both new and existing users.

Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2026-02-02 01:17:49 +00:00

41 lines
1.7 KiB
Markdown

# Frequently Asked Questions (FAQ)
This page answers common questions about the Poindexter library.
## General
### What is Poindexter?
Poindexter is a Go library that provides a collection of utility functions, including sorting algorithms and a K-D tree implementation for nearest neighbor searches.
### What is the license?
Poindexter is licensed under the European Union Public Licence v1.2 (EUPL-1.2). See the [LICENSE](LICENSE) file for more details.
## K-D Tree
### What is a K-D tree?
A K-D tree is a data structure used for organizing points in a k-dimensional space. It is particularly useful for nearest neighbor searches.
### How do I choose a distance metric?
The choice of distance metric depends on your specific use case. Here are some general guidelines:
- **Euclidean (L2):** A good default for most cases.
- **Manhattan (L1):** Useful when movement is restricted to a grid.
- **Chebyshev (L∞):** Useful for cases where the maximum difference between coordinates is the most important factor.
### Is the K-D tree thread-safe?
The K-D tree implementation is not safe for concurrent mutations. If you need to use it in a concurrent environment, you should protect it with a mutex or share immutable snapshots for read-mostly workloads.
## WASM
### Can I use Poindexter in the browser?
Yes, Poindexter provides a WebAssembly (WASM) build that allows you to use the K-D tree in browser environments. See the [WASM documentation](wasm.md) for more details.
### What is the performance of the WASM build?
The performance of the WASM build is generally good, but it will be slower than the native Go implementation. For performance-critical applications, it is recommended to benchmark your specific use case.