Assembly-level implementation of interesting data types

Overview

Clnooms

Crate API

Assembly-level implementation of various interesting data types on Rust

Table of Contents

  • Data Types
    • Half-precision floating point (f16)
    • Extended floating point (f80)
  • Progress
    • Half-precision floating point (f16)
      • Arithmetic
      • Exponential
      • Trigonometry
      • Comparing
      • From Casting
      • Into Casting
      • Miscelaneous
    • Extended floating point (f80)
      • Arithmetic
      • Exponential
      • Trigonometry
      • Comparing
      • From Casting
      • Into Casting
      • Miscelaneous
  • Benchmarks
  • Installation

Data types

Half-precision floating point (f16)

A 16-bit floating point type; specifically, the ARM alternative half-precision. It is only available for aarch64 targets & it differs from it's IEEE variant by doing away with the special case for an exponent value of 31, disallawing infinities & NaNs. For non-compatible targets, the "f16" type is an alias of "f32"

See the Wikipedia article

Extended floating point (f80)

A 80-bit floating point type that provides greater precision than the basic floating-point formats. It is an x86 exclusive and it's mainly used to minimize roundoff and overflow errors in smaller floating point types. For non-compatible targets, the "f80" type is an alias of "f64"

See the Wikipedia article

Progress

Half-precision floating point (f16)

Arithmetic

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Negation
  • Square root

Exponential

  • Exponential
  • Natural Logarithm

Trigonometry

  • Sine
  • Cosine
  • Tangent
  • Arc Sine
  • Arc Cosine
  • Arc Tangent
  • Arc Tangent 2

Comparing

  • By Equal
  • By Order

From Casting

  • 8-bit unsigned integer
  • 8-bit signed integer
  • 16-bit unsigned integer
  • 16-bit signed integer
  • 32-bit unsigned integer
  • 32-bit signed integer
  • 64-bit unsigned integer
  • 64-bit signed integer
  • 128-bit unsigned integer
  • 128-bit signed integer
  • Single precision floating point
  • Double precision floating point

Into Casting

  • 8-bit unsigned integer
  • 8-bit signed integer
  • 16-bit unsigned integer
  • 16-bit signed integer
  • 32-bit unsigned integer
  • 32-bit signed integer
  • 64-bit unsigned integer
  • 64-bit signed integer
  • 128-bit unsigned integer
  • 128-bit signed integer
  • Single precision floating point
  • Double precision floating point

Miscelaneous

  • Absolute
  • Round
  • Truncate
  • Floor
  • Ceil

Extended floating point (f80)

Arithmetic

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Negation
  • Square root

Exponential

  • Exponential
  • Natural Logarithm

Trigonometry

  • Sine
  • Cosine
  • Tangent
  • Arc Sine
  • Arc Cosine
  • Arc Tangent
  • Arc Tangent 2

Comparing

  • By Equal
  • By Order

From Casting

  • 8-bit unsigned integer
  • 8-bit signed integer
  • 16-bit unsigned integer
  • 16-bit signed integer
  • 32-bit unsigned integer
  • 32-bit signed integer
  • 64-bit unsigned integer
  • 64-bit signed integer
  • 128-bit unsigned integer
  • 128-bit signed integer
  • Single precision floating point
  • Double precision floating point

Into Casting

  • 8-bit unsigned integer
  • 8-bit signed integer
  • 16-bit unsigned integer
  • 16-bit signed integer
  • 32-bit unsigned integer
  • 32-bit signed integer
  • 64-bit unsigned integer
  • 64-bit signed integer
  • 128-bit unsigned integer
  • 128-bit signed integer
  • Single precision floating point
  • Double precision floating point

Miscelaneous

  • Absolute
  • Round
  • Truncate
  • Floor
  • Ceil

Benchmarks

Todo

Instalation

This library can be installed through cargo with the command
cargo install clnooms

You might also like...
Zero-Knowledge Assembly language and compiler

zkAsm A Zero-Knowledge circuit assembly language, designed to represent Zero-Knowledge circuits in a compressed format, to be stored on blockchains. I

Work out how to read Parquet files in a browser using web assembly (via the Rust toolchain)

wasm-pack-template A template for kick starting a Rust and WebAssembly project using wasm-pack. Tutorial | Chat Built with ๐Ÿฆ€ ๐Ÿ•ธ by The Rust and WebAs

A basic web assembly chess engine written in rust.

This library is a basic implementation of a chess min-max algorithm with alpha-beta pruning (Algorithm Info). It is designed to be compiled down to WebAssembly and used for web applications.

๐ŸŽ€ A modern build system for assembly

๐ŸŽ€ Divina What? Divina is a modern build system for assembly. Why should I use Divina? Divina is Simple, cool, fast, and uses Lua as a configuration l

An optimising Brainf*ck to x86-64 assembly compiler written in Rust

brainfrsk 2 An optimising Brainf*ck to x86-64 assembly compiler. This compiler can produce optimised binaries for macOS (Sytem V calling convention) b

Library to write x64 Assembly code from Rust, more properly. Designed for the nasm assembler

x64asm Library to write x64 Assembly code from Rust, more properly. Designed for the nasm assembler How to use let mut f = Formatter::new(false); // f

A cargo subcommand that displays the assembly generated for Rust source code

cargo-show-asm A cargo subcommand that displays the assembly generated for Rust source code.

Mini operating system with a graphical interface, for x64 platforms, in Rust and Assembly

osmini Mini operating system with a graphical interface, for x64 platforms, in Rust and Assembly Build Don't forget to install the dependencies. This

Risc-V assembly interpreter built with pure Rust
Risc-V assembly interpreter built with pure Rust

Risc-V Interpreter Interpreter for Risc-V assembly built with Rust Report bug ยท Request feature Table of contents Quick start Exemple Program Instruct

A collection of functions written in Triton VM assembly (tasm)

tasm-lib This repository contains a collection of functions written in Triton VM assembly (tasm). There are two big projects to be written in tasm: Th

A visual canvas and virtual machine for writing assembly to build cool things. Create machines and connect them together.
A visual canvas and virtual machine for writing assembly to build cool things. Create machines and connect them together.

Visual Assembly Canvas A highly visual assembly editor, infinite canvas for wiring blocks and machines together, bytecode virtual machine runnable nat

A visual canvas and virtual machine for writing assembly to build cool things. Create machines and connect them together.
A visual canvas and virtual machine for writing assembly to build cool things. Create machines and connect them together.

Visual Assembly Canvas A highly visual assembly editor, infinite canvas for wiring blocks and machines together, bytecode virtual machine runnable nat

Bootstrap, build and deploy sBPF assembly programs with ease

sbpf A simple scaffold to bootstrap sBPF Assembly programs. Dependencies Please make sure you have the latest version of Solana Command Line Tools ins

.NET assembly loader with patchless AMSI and ETW bypass in Rust
.NET assembly loader with patchless AMSI and ETW bypass in Rust

RustPatchlessCLRLoader The RustPatchlessCLRLoader leverages a sophisticated integration of patchless techniques for bypassing both Event Tracing for W

A guide for Mozilla's developers and data scientists to analyze and interpret the data gathered by our data collection systems.

Mozilla Data Documentation This documentation was written to help Mozillians analyze and interpret data collected by our products, such as Firefox and

Scalable and fast data store optimised for time series data such as financial data, events, metrics for real time analysis

OnTimeDB Scalable and fast data store optimised for time series data such as financial data, events, metrics for real time analysis OnTimeDB is a time

Utilities to gather data out of roms. Written in Rust. It (should) support all types.

snesutilities Utilities to gather data out of roms. Written in Rust. It (should) support all types. How Have a look at main.rs: use snesutilities::Sne

A library for transcoding between bytes in Astro Notation Format and Native Rust data types.

Rust Astro Notation A library for transcoding between hexadecimal strings in Astro Notation Format and Native Rust data types. Usage In your Cargo.tom

๐Ÿ–A WGPU graphics pipeline, along with simple types used to marshal data to the GPU
๐Ÿ–A WGPU graphics pipeline, along with simple types used to marshal data to the GPU

renderling ๐Ÿ– This library is a collection of WGPU render pipelines. Shaders are written in GLSL. shaderc is used to compile shaders to SPIR-V. Defini

Owner
Alex
Alex
weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.

weggli Introduction weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify int

Google Project Zero 2k Jan 5, 2023
Explore interesting Pisano Period visualisations.

Pisano Explore interesting Pisano Period visualisations. About Pisano lets you explore different visualizations of Pisano periods, repeating integer s

Jonas Kruckenberg 8 Dec 15, 2022
Interesting protection concept i came up with.

Note If this reprository is useful to you in in any shape or form please give it a star. How it works This protection works by taking all the assembly

RadonCoding 10 Dec 20, 2022
A low-level assembly language for the Ethereum Virtual Machine built in blazing-fast pure rust.

huff-rs โ€ข huff-rs is a Huff compiler built in rust. What is a Huff? Huff is a low-level programming language designed for developing highly optimized

Huff 276 Dec 31, 2022
MidenIR for compiling to Miden Assembly from higher-level languages

Miden IR This repository provides a compiler for the Miden VM, specifically for Miden Assembly. It does this by lowering from a higher-level intermedi

Polygon Miden 10 Mar 30, 2023
Allows conversion between ndarray's types and image's types

ndarray-image Allows conversion between ndarray's types and image's types Deprecated WARNING: This crate is currently deprecated in favor of https://g

Rust Computer Vision 11 Jul 26, 2022
Unopinionated low level API bindings focused on soundness, safety, and stronger types over raw FFI.

?? firehazard ?? Create a fire hazard by locking down your (Microsoft) Windows so nobody can escape (your security sandbox.) Unopinionated low level A

null 5 Nov 17, 2022
An implementation of a predicative polymorphic language with bidirectional type inference and algebraic data types

Vinilla Lang Vanilla is a pure functional programming language based on System F, a classic but powerful type system. Merits Simple as it is, Vanilla

Zehao Chen 73 Aug 4, 2022
interative assembly shell written in rust

Overview this project is inspired by https://github.com/poppycompass/asmshell Preview Build from source git clone https://github.com/keystone-engine/k

Xargin 236 Dec 23, 2022
Debugger and interpreter for the M8 pseudo-assembly language

m8db Debugger and interpreter for the M8 pseudo-assembly language. Inspired by gdb or lldb More infos: https://github.com/ah1m1/M8NI Usage: $ ./m8db (

nils 2 Sep 19, 2021