Git Product home page Git Product logo

numeric-papers-in-latex's Introduction

What is it

That a non-official version of Numerics TS. In this repo we are just trying to port all accepted or partially accepted papers by SG6 to Latex format with corresponding to the C++ Standard wording.

Note again: that's a not official repository (at least yet).

numeric-papers-in-latex's People

Contributors

zamazan4ik avatar apolukhin avatar ddaemonium avatar

Stargazers

Alexander Malkov avatar Andrew Titov avatar Alex avatar Timur Safin avatar  avatar

Watchers

John McFarlane avatar James Cloos avatar  avatar Timur Safin avatar  avatar Alex avatar  avatar

numeric-papers-in-latex's Issues

Kill the iostream operators and find an alternative

LEWGI recommened to avoid operators >> and << for numeric types.

We need a paper that:

  • Does a small research of the problem
  • Provides a list of simpler alternatives (to_string, to_chars, etc.)
  • Recommends a replacement for converting numbers<->strings (for example std::to_chars and std::from_chars)

std::common_type specializations vs out-of-the box support

LEWGI review noted that we may avoid std::common_type specializations for wide_integers if we can make ternary operator for wide_integers behave as intended.

We need some experiments and either an in detail description of why ternary operator fails or a paper that addresses the problem and removes the std::common_type specializations

Make sure that the Numbers paper does not provide more than intended in goals

There are members that provide access to internals of unbounded integer. There may be more places like that.

We need a paper with detailed description of "why we do not whant to describe underlying implementations", possible ways to portably access storage in the future, and a wording to remove the unnecessary stuff.

Numbers TS scope and priorities

We need a short sentence that describes the Numbers TS and a prioritized list of goals.

My best attempt
Scope: "User friendly numeric types, aliases and low level building blocks to implement them"

Goals:

  1. Provide integral types that are widely useful and exist in other programming languages:
    a. integer - an unbounded integer type
    b. wide_integer - a non allocating integer of a compile time specified size
    c. elastic_integer - never overflowing integer that at compile-time generalize promotion rules
    d. safe_integer ???
  2. Provide non-integral types that are widely useful and exist in other programming languages:
    a. rational - allocating? rational number representation
    b. decimal ???
    c. unbounded float ???
  3. Provide basic building blocks for overflow detection
  4. Provide arithmetic operations for each numeric type
  5. Provide basic locale-unaware string <> numeric conversions
  6. Provide arithmetic operations for interaction of different numeric types

What we are NOT planning to provide:

  • iosteams for numeric types
  • trigonometric functions
  • description of the storage format for numeric type
  • ???

@zamazan4ik @johnmcfarlane @Lawrence-Crowl please tell what do you think about the goals and scope?

Make design future-proof

I've read the paper and see a lot of legacy stuff like macros and additions to C headers such as <cstdint> that should really be deprecated because they are not modules. This is hacking on a legacy foundation that seems very short-sighted. I think we should stop beating the dead horse of C and make a design that actually scales well.

New namespace such as std::math.

This way we are not bound by sudden collisions with C library. And we really need a fresh start.

Pretty much all numeric functions should be customization point objects

This should be obvious. That's the only way that scales to user-defined types. Consider std::sin. It has overloads for floating point and integral types and no support for user defined types. std::math::sin would call a .sin() member function if UDT provides it or pickup sin non-member found via ADL. Same for all other numeric functions.

No additions to C headers, no macros

There is no point. Especially adding templates. I want import std to import numeric functions (assuming the committee will take Bjarne's approach of packaging C++ stdlib as std). Macros can't be exported. Again, let libc rot, there is no way of salvaging it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.