[lib][affine] Port timeline transformations to the zircon level.

Port the majority of the functionality of the media TimelineTransform
library down to the zircon level.  The library is not technically time
specific.  Instead it implements a specific representation of
one-dimentional affine transformations, so rename to libaffine in the
process.

This is all preparing to make use of the library functionality in the
kernel as part of the implementation of kernel clock objects.  Make
sure to use the same fundamental representation of the transformations
so that the core of the transformations maintain compatibility with
what is currently being used in the media code.

Also:
++ Write unit tests.  The old library didn't have any, and probably
   could use some.
++ Fix a few small edge case bugs which were found by inspection while
   thinking up test vectors.

Change-Id: I0841ac5f53b9f8bf77a7fd903c97c2f8af3c3df8
9 files changed
tree: fc0fb75de2cf062d375f73b9e4c5a5d6e22591eb
  1. .clang-format
  2. .clang-tidy
  3. .dir-locals.el
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. AUTHORS
  8. BUILD.gn
  9. CODE_OF_CONDUCT.md
  10. CONTRIBUTING.md
  11. LICENSE
  12. OWNERS
  13. PATENTS
  14. README.md
  15. boards/
  16. build/
  17. buildtools/
  18. bundles/
  19. docs/
  20. examples/
  21. garnet/
  22. infra/
  23. peridot/
  24. products/
  25. rustfmt.toml
  26. scripts/
  27. sdk/
  28. src/
  29. third_party/
  30. tools/
  31. zircon/
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.