мне не нравится реальность
Photo
GitHub
Stabilize generic associated types by jackh726 · Pull Request #96709 · rust-lang/rust
Closes #44265
r? @nikomatsakis
⚡ Status of the discussion ⚡
There have been several serious concerns raised, summarized here.
There has also been a deep-dive comment explaining some of the "...
r? @nikomatsakis
⚡ Status of the discussion ⚡
There have been several serious concerns raised, summarized here.
There has also been a deep-dive comment explaining some of the "...
🎉21👎1
#prog #math #article
Написано на удивление доходчиво.
High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations
Everyone uses math libraries (i.e., libm), which provide approximations for elementary functions. Surprisingly (or not), mainstream math libraries (i.e., Intel’s and GCC’s libm) do not produce correct results for several thousands of inputs! Developers of modern software systems are seldom aware of them, which affects the reproducibility and portability of software systems. This blog post describes our new method for synthesizing elementary functions that produces correct results for all inputs but is also significantly faster than the state of the art libraries, which have been optimized for decades.
<...>
The overall goal of our RLIBM project is to make correctly rounded elementary functions mandatory rather than a recommendation by the standards (at least for 32 bits or lower). In our RLIBM project, we have been making a case for generating polynomials that approximate the correctly rounded result of f(x) rather than the real value of f(x) because our goal is to generate correct, yet efficient implementations. By approximating the correctly rounded result, we consider both approximation errors (i.e., polynomial approximation) and rounding errors (i.e., with polynomial evaluation with finite precision representations), which enables the generation of correct results. One can use existing high-precision libraries, which are slow, to generate oracle correctly rounded results. Now our goal is to generate efficient polynomials that produce these correctly rounded results for all inputs. Given a correctly rounded result, there is an interval of real values around the correct result that the polynomial can produce, which still rounds to the correct result. This interval is the amount of freedom available that our polynomial generator has for a given input. Using this interval, our idea is to structure the problem of polynomial generation that produces correct results for all inputs as a linear programming (LP) problem. To scale to representations with a large number of inputs, we propose counterexample guided polynomial generation, generate piecewise polynomials rather than a single polynomial, and develop techniques that support various complex range reductions.
Написано на удивление доходчиво.
High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations
Everyone uses math libraries (i.e., libm), which provide approximations for elementary functions. Surprisingly (or not), mainstream math libraries (i.e., Intel’s and GCC’s libm) do not produce correct results for several thousands of inputs! Developers of modern software systems are seldom aware of them, which affects the reproducibility and portability of software systems. This blog post describes our new method for synthesizing elementary functions that produces correct results for all inputs but is also significantly faster than the state of the art libraries, which have been optimized for decades.
<...>
The overall goal of our RLIBM project is to make correctly rounded elementary functions mandatory rather than a recommendation by the standards (at least for 32 bits or lower). In our RLIBM project, we have been making a case for generating polynomials that approximate the correctly rounded result of f(x) rather than the real value of f(x) because our goal is to generate correct, yet efficient implementations. By approximating the correctly rounded result, we consider both approximation errors (i.e., polynomial approximation) and rounding errors (i.e., with polynomial evaluation with finite precision representations), which enables the generation of correct results. One can use existing high-precision libraries, which are slow, to generate oracle correctly rounded results. Now our goal is to generate efficient polynomials that produce these correctly rounded results for all inputs. Given a correctly rounded result, there is an interval of real values around the correct result that the polynomial can produce, which still rounds to the correct result. This interval is the amount of freedom available that our polynomial generator has for a given input. Using this interval, our idea is to structure the problem of polynomial generation that produces correct results for all inputs as a linear programming (LP) problem. To scale to representations with a large number of inputs, we propose counterexample guided polynomial generation, generate piecewise polynomials rather than a single polynomial, and develop techniques that support various complex range reductions.
SIGPLAN Blog
High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations
Everyone uses math libraries. Surprisingly, mainstream math libraries do not produce correct results for several thousands of inputs. Developers are seldom aware of them, which affects reproducibil…
🔥2👍1👎1
#prog #math #article
И продолжение (в апреле этого года, кстати):
One Polynomial Approximation to Produce Correctly Rounded Results for Multiple Representations and Rounding Modes
In the previous SIGPLAN blog post, we described our previous results in the RLIBM project where we have developed a collection of correctly rounded and efficient elementary functions for the 32-bit float representation with a single rounding mode: round-to-nearest-ties-to-even mode.
While the round-to-nearest-ties-to-even rounding mode is the default IEEE-754 rounding mode, there are four other standard rounding modes specified in IEEE-754. Some of them are attractive for efficient hardware implementations. Further, there is active research to explore new variants of the floating point representation that trade-off the range of values that can be represented and the precision of each such value. Such representations include bfloat16 and tensorfloat32, which are becoming widely used and also have hardware support. The key research question in consideration in this post is the following: how can we extend the RLIBM approach to create a single implementation that produces correctly rounded results for multiple configurations (e.g., float, tensorfloat32, and bfloat16)?
One possible method to develop correctly rounded implementations is to create one for each configuration of the floating point representation and for each rounding mode. This is a perfectly valid strategy if there are only few such configurations. However, it is not suitable/appealing if we have to support hundreds of configurations. Further, using a correctly rounded polynomial for a particular configuration and a rounding mode for other configurations will result in incorrect results due to double rounding errors, which we explain later in this article.
In contrast, it will be ideal to create a single implementation that can produce correct results for all the supported configurations. This is exactly what we propose in our POPL 2022 distinguished paper. As before with the RLIBM project, we also make a case for generating polynomials that approximate the correctly rounded result of f(x) rather than the real value of f(x). Approximating the correctly rounded result considers both the approximation error and the rounding error. The RLIBM approach identifies the rounding interval for each correctly rounded result. Using this interval, it frames the problem of polynomial generation into a linear programming (LP) problem.
To create a single polynomial approximation that produces correct results for multiple representations and rounding modes, we propose to generate a polynomial that generates the correctly rounded result of f(x) using the non-standard round-to-odd rounding mode with 2 additional precision bits compared to the largest floating point representation that we wish to support. We provide a proof that this method produces correctly rounded results for multiple representations and for all the standard rounding modes.
И продолжение (в апреле этого года, кстати):
One Polynomial Approximation to Produce Correctly Rounded Results for Multiple Representations and Rounding Modes
In the previous SIGPLAN blog post, we described our previous results in the RLIBM project where we have developed a collection of correctly rounded and efficient elementary functions for the 32-bit float representation with a single rounding mode: round-to-nearest-ties-to-even mode.
While the round-to-nearest-ties-to-even rounding mode is the default IEEE-754 rounding mode, there are four other standard rounding modes specified in IEEE-754. Some of them are attractive for efficient hardware implementations. Further, there is active research to explore new variants of the floating point representation that trade-off the range of values that can be represented and the precision of each such value. Such representations include bfloat16 and tensorfloat32, which are becoming widely used and also have hardware support. The key research question in consideration in this post is the following: how can we extend the RLIBM approach to create a single implementation that produces correctly rounded results for multiple configurations (e.g., float, tensorfloat32, and bfloat16)?
One possible method to develop correctly rounded implementations is to create one for each configuration of the floating point representation and for each rounding mode. This is a perfectly valid strategy if there are only few such configurations. However, it is not suitable/appealing if we have to support hundreds of configurations. Further, using a correctly rounded polynomial for a particular configuration and a rounding mode for other configurations will result in incorrect results due to double rounding errors, which we explain later in this article.
In contrast, it will be ideal to create a single implementation that can produce correct results for all the supported configurations. This is exactly what we propose in our POPL 2022 distinguished paper. As before with the RLIBM project, we also make a case for generating polynomials that approximate the correctly rounded result of f(x) rather than the real value of f(x). Approximating the correctly rounded result considers both the approximation error and the rounding error. The RLIBM approach identifies the rounding interval for each correctly rounded result. Using this interval, it frames the problem of polynomial generation into a linear programming (LP) problem.
To create a single polynomial approximation that produces correct results for multiple representations and rounding modes, we propose to generate a polynomial that generates the correctly rounded result of f(x) using the non-standard round-to-odd rounding mode with 2 additional precision bits compared to the largest floating point representation that we wish to support. We provide a proof that this method produces correctly rounded results for multiple representations and for all the standard rounding modes.
SIGPLAN Blog
One Polynomial Approximation to Produce Correctly Rounded Results for Multiple Representations and Rounding Modes
To create a single polynomial approximation that produces correct results for multiple representations and rounding modes, we propose to generate a polynomial that generates the correctly rounded …
👍3👎1
Блог*
#music Извините, я не буду ждать до 26 апреля. youtube.com/watch?v=C3KPlowsyJs
Эта песня была выпущена в 2008 году. Лет через десять Кэти Перри в интервью говорила, что за десять лет отношение к затронутым темам поменялось, и что если бы она писала песню сейчас, то написала бы её несколько иначе. Я решил прикинуть, как это могло бы выглядеть — тем более что из-за некоторых моментов мне оригинальный текст не очень нравится. Так что вот вам моя переделка текста.
———
This didn't go the way I planned
That's my confession
I drank so I had trembling hands
Lost my discretion
I just did not think through
Just wanted try you on
Was curious for you
Caught my attention
I kissed a girl and I liked it
The taste of her cherry chapstick
I kissed a girl just to try it
I worried she would mind it
It felt so wrong, it felt so right
No way I was in love that night
I kissed a girl and I liked it
I liked it
I did not even know your name
Was too excited
It was experimental game
Though got delighted
It's not what good girls do
That I was always told
My head got so confused
I did not want to hold
I kissed a girl and I liked it
It never was a blunder
I kissed a girl just to try it
And it felt like a thunder
It felt less wrong, it felt more right
Maybe I was in love that night
I kissed a girl and I liked it
I liked it
Us girls, we are so magical
Soft skin, red lips, so kissable
Hard to resist, so touchable
Too good to deny it
No doubt we are magnificent
I kissed a girl with drunken grin
And noone cared about it
I kissed a girl just on a whim
And damn I really liked it
It feels not wrong, it feels just right
Maybe I fell in love that night
I kissed girlfriend and I liked it
Fuck, liked it!
———
This didn't go the way I planned
That's my confession
I drank so I had trembling hands
Lost my discretion
I just did not think through
Just wanted try you on
Was curious for you
Caught my attention
I kissed a girl and I liked it
The taste of her cherry chapstick
I kissed a girl just to try it
I worried she would mind it
It felt so wrong, it felt so right
No way I was in love that night
I kissed a girl and I liked it
I liked it
I did not even know your name
Was too excited
It was experimental game
Though got delighted
It's not what good girls do
That I was always told
My head got so confused
I did not want to hold
I kissed a girl and I liked it
It never was a blunder
I kissed a girl just to try it
And it felt like a thunder
It felt less wrong, it felt more right
Maybe I was in love that night
I kissed a girl and I liked it
I liked it
Us girls, we are so magical
Soft skin, red lips, so kissable
Hard to resist, so touchable
Too good to deny it
No doubt we are magnificent
I kissed a girl with drunken grin
And noone cared about it
I kissed a girl just on a whim
And damn I really liked it
It feels not wrong, it feels just right
Maybe I fell in love that night
I kissed girlfriend and I liked it
Fuck, liked it!
👎14👍2🤔1🤮1
#prog #rust #article
Would Rust secure cURL?
Можно считать слабым контрпримером к Betteridge's law of headline
Would Rust secure cURL?
Можно считать слабым контрпримером к Betteridge's law of headline
Wikipedia
Betteridge's law of headlines
journalism-related adage
👍1👎1
#prog #parsing #article
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
Developers often think parser generators are the sole legit way to build programming language frontends, possibly because compiler courses in university teach lex/yacc variants. But do any modern programming languages actually use parser generators anymore?
To find out, this post presents a non-definitive survey of the parsing techniques used by various major programming language implementations.
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
Developers often think parser generators are the sole legit way to build programming language frontends, possibly because compiler courses in university teach lex/yacc variants. But do any modern programming languages actually use parser generators anymore?
To find out, this post presents a non-definitive survey of the parsing techniques used by various major programming language implementations.
👎3❤2
Forwarded from какография
– «тот кто готов пожертвовать свободой ради безопасности не заслуживает ни безопасности ни свободы»
– о, ты тоже тикток смотришь? Это фраза из тиктока, я там ее слышала.
– …
– что?
– о, ты тоже тикток смотришь? Это фраза из тиктока, я там ее слышала.
– …
– что?
😐18👎3🤯2❤1👍1
#prog #rust #rustlib #article
A byte string library for Rust
Или о том, для чего может понадобиться библиотека, работающая с байтиками, которые не обязательно корректно закодированы в UTF8
A byte string library for Rust
Или о том, для чего может понадобиться библиотека, работающая с байтиками, которые не обязательно корректно закодированы в UTF8
burntsushi.net
A byte string library for Rust - Andrew Gallant's Blog
I blog mostly about my own programming projects.
🔥2❤1👎1
Forwarded from hot women читают 📚 (лера♡)
оцениваем ваши каналы🤍
Условия:
- репост к себе на канал
- в комментариях оставляете ссылку!
( подписка не обязательна)
Условия:
- репост к себе на канал
- в комментариях оставляете ссылку!
( подписка не обязательна)
🤣7👎4💩2🤮1🤡1
Forwarded from Технологический Болт Генона
Когда-то давно, в 2019 году, я уже рассказывал о сайте https://osgameclones.com/.
Смысл проекта в том, что бы собрать open source клоны различных игр.
Сейчас зашёл на него и игр там всё больше и больше.
Например, наткнулся там на репу https://github.com/dethrace-labs/dethrace, где занимаются реверс-инжинирингом Carmageddon'а 1997 года. И на тридцатое августа 2022 года имплементировали 69% от оригинала.
А всего на сайте указано 1250 игр.
Так что всем, кто интересуется, категорически рекомендую.
Ну и всем хороших выходных!
Смысл проекта в том, что бы собрать open source клоны различных игр.
Сейчас зашёл на него и игр там всё больше и больше.
Например, наткнулся там на репу https://github.com/dethrace-labs/dethrace, где занимаются реверс-инжинирингом Carmageddon'а 1997 года. И на тридцатое августа 2022 года имплементировали 69% от оригинала.
А всего на сайте указано 1250 игр.
Так что всем, кто интересуется, категорически рекомендую.
Ну и всем хороших выходных!
🔥9👍1👎1