Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and learn more about it. Thanks for reading, and for making the site better!

Please do not use the term "hysteria" as it denigrates women. That word originates from the Greek word for "uterus," with the word "hysterectomy" sharing the same lineage, and perniciously qualifies women as raving lunatics.

Moreover, the DoAndIfThenElse extension merely extends the "do" syntax with if/then/else clauses; it is syntactic sugar. Empty data declarations are essentially union types unioned over no labels and therefore can have no values except for the bottom value.

No, the Model M (clicky) is a keyboard that IBM made. Each keystroke has a nice tactile response and a loud click. Also, these things weigh enough that they do not accidentally move around the desk very often.

What would be the result of 354+true? What is the result of true+true? What is the result of false-true? What is the result of true^3? What is the squareroot of true? Does it make any sense? Is it well defined?

In C, any non-zero int value is synonymous with true and the int value 0 is synonymous with false. So, 354+true is something besides 354; true+true is the sum of two non-zero int values; false-true is simply the arithmetic negation of some non-zero int value; true^3 is some non-zero int value multiplied by itself twice; sqrt(true) is some non-zero int value cast into a double and given to sqrt. It does not have to make sense because these operations are well-defined.

Strongly typed languages usually make type conversions explicit and enforce type restrictions; whereas weakly typed languages usually allow implicit type conversions and relax type restrictions.

Explicit type conversions disallow a value of type T to be treated as a value of type S without invoking a function that takes a value of type T and returns a corresponding value of type S. For example, a conversion from an integer type to a floating point type requires the invocation of a function that performs the conversion. Contrast this with implicit type conversions where a value can be treated as almost any type depending on how it is to be used.

Type restrictions only allow certain operations to be done to certain types. For example, numerical addition mïay only be performed on numerical types. A lack of type restrictions allow for numerical addition to apply for, say, booleans, for example.

A web developer or a functional programmer wouldn't stand a chance here as normal programming only in rare cases involves advanced algoritms like maximum bipartite matchings, maximul flow or other graph related algorithms.

Functional programmers will stand a better chance in these competitions. It is arguably easier to implement graph algorithms in functional programming languages than in imperative programming languages. There are proportionally more functional programmers who have a firm grasp of algorithm design and implementation than programmers who have not used functional programming languages.

Forbidding competition among providers of services is bad everywhere. User fees for road tolls and taxes as well as public schools are bad if private entities are not allowed to respectively provide access to their own privately owned roads and private schools. Moreover, these court records can be distributed by private individuals without incurring any additional costs to the federal government.

Self-enforcing protocol participants do not require the level of trust that are required of impartial middle-men. One way of looking at self-enforcing protocols is to think of the protocol itself as serving the role of a middle-man. The protocol can be scrutinized more thoroughly than any self-serving middle-man and a higher level of trust can be placed on the protocol.

If the courts do rule in favor of the defendant, then they should also rule that the statement in question is true. In this case, the courts should rule that the plaintiff does think that sleeping in moldy apartments is okay.
There should be consequences for plaintiffs who lose libel cases.

Ann Coulter writes | more than 10 years ago
This entry is also a kuro5hin diary entry.

The Karatsuba-Ofman algorithm for polynomial multiplication is a recursive method that reduces the number of point multiplications of polynomials at each step from the four needed by the schoolbook method to only three. In my implementation, I deconstructed the process of the recursive Karatsuba-Ofman algorithm and rearranged the multiplications so that it would be easier to design a bottom-up algorithm around it. A bottom-up algorithm computes results beginning with (logically) the most basic elements and builds up until the final result is obtained. In my method, the basecase multiplications (multiplications that can be done with a simpler algorithm) are computed first along with the factors that are the oprands for these basecase multiplications. The second step is the interpolation step where the basecase products are added and subtracted from each other at different positions to obtain the final answer.

The code, which is very preliminary, can be found here. Again, the code is very slow at the moment and even now, with the code in my repository, it is still a little slower than the recursive Karatsuba-Ofman implementation found in the GMP library. I plan to deconstruct the basecase multiplications and factor calculations in such a way that the operands are friendly to the processor cache. Another optimization is to arrange the interpolation stage in such a way that one of its components becomes O(1) instead of the original O(n).