/* Бібліотека Мавки */

взяти означення мавка;

дія бібліотека_мавки_синус_д64(значення: д64) -> д64;
дія бібліотека_мавки_косинус_д64(значення: д64) -> д64;
дія бібліотека_мавки_тангенс_д64(значення: д64) -> д64;
дія бібліотека_мавки_арксинус_д64(значення: д64) -> д64;
дія бібліотека_мавки_арккосинус_д64(значення: д64) -> д64;
дія бібліотека_мавки_арктангенс_д64(значення: д64) -> д64;
дія бібліотека_мавки_арктангенс2_д64(а: д64, б: д64) -> д64;
дія бібліотека_мавки_абсолютне_д64(значення: д64) -> д64;
дія бібліотека_мавки_експонента_д64(значення: д64) -> д64;
дія бібліотека_мавки_корінь_д64(значення: д64) -> д64;
дія бібліотека_мавки_стеля_д64(значення: д64) -> д64;
дія бібліотека_мавки_підлога_д64(значення: д64) -> д64;
дія бібліотека_мавки_округлити_д64(значення: д64) -> д64;

простір мавка {
  простір бібліотека {
    стала Е = 2.71828182845904523536;
    стала ЛОГ2Е = 1.44269504088896340736;
    стала ЛОГ10Е = 0.434294481903251827651;
    стала ЛОГ2 = 0.693147180559945309417;
    стала ЛОГ10 = 2.30258509299404568402;
    стала ПІ = 3.14159265358979323846;
    стала КОРІНЬ2 = 1.41421356237309504880;
    стала КОРІНЬ1_2 = 0.707106781186547524401;

    структура КористувацькіДаніБібліотекиМавки {
      взято__математика: адреса<Притриманий>; // ПредметМодуля
      взято__читати: адреса<Притриманий>; // ПредметДії
    }

    дія ініціалізувати(М: адреса<Машина>);
    дія записати_дію__математика__синус(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__косинус(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__тангенс(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__арксинус(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__арккосинус(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__арктангенс(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__абсолютне(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__експонента(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__корінь(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__стеля(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__підлога(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія записати_дію__математика__округлити(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія ініціалізувати__математика(М: адреса<Машина>, предмет_модуля: адреса<ПредметМодуля>);
    дія створити_дію__читати(М: адреса<Машина>) -> адреса<ПредметДії>;
  }
}