//
// This confidential and proprietary software may be used only as
// authorised by a licensing agreement from ARM Limited
// (C) COPYRIGHT 2020-2021 ARM Limited
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorised
// copies and copies may only be made to the extent permitted
// by a licensing agreement from ARM Limited.

include::{generated}/version.adoc[]

= TOSA {tosa-version-string} specification
:numbered:
:toc: left
:toclevels: 3
:source-highliter: coderay
:imagesdir: figures

include::chapters/tosa_license.adoc[]

include::chapters/introduction.adoc[]

include::chapters/operators.adoc[]

include::chapters/pseudocode.adoc[]

include::chapters/appendix_a.adoc[]
