At the time he invented the algorithm, Karmarkar was employed by
IBM as a postdoctoral fellow in the
IBM San Jose Research Laboratory in California. On August 11, 1983 he gave a seminar at
Stanford University explaining the algorithm, with his affiliation still listed as IBM. By the fall of 1983 Karmarkar started to work at
AT&T and submitted his paper to the 1984 ACM
Symposium on Theory of Computing (STOC, held April 30 - May 2, 1984) stating
AT&T Bell Laboratories as his affiliation. After applying the algorithm to optimizing AT&T's telephone network, they realized that his invention could be of practical importance. In April 1985, AT&T promptly applied for a patent on his algorithm. The patent became more fuel for the ongoing controversy over the issue of
software patents. This left many mathematicians uneasy, such as
Ronald Rivest (himself one of the holders of the patent on the
RSA algorithm), who expressed the opinion that research proceeded on the basis that algorithms should be free. Even before the patent was actually granted, it was argued that there might have been
prior art that was applicable. Mathematicians who specialized in
numerical analysis, including
Philip Gill and others, claimed that Karmarkar's algorithm is equivalent to a
projected Newton barrier method with a logarithmic
barrier function, if the parameters are chosen suitably. Legal scholar Andrew Chin opines that Gill's argument was flawed, insofar as the method they describe does not constitute an "algorithm", since it requires choices of parameters that don't follow from the internal logic of the method, but rely on external guidance, essentially from Karmarkar's algorithm. Furthermore, Karmarkar's contributions are considered far from obvious in light of all prior work, including Fiacco-McCormick, Gill and others cited by Saltzman. The patent was granted in recognition of the essential originality of Karmarkar's work, as : "Methods and apparatus for efficient resource allocation" in May 1988. AT&T designed a
vector multi-processor computer system specifically to run Karmarkar's algorithm, calling the resulting combination of hardware and software KORBX, The patent itself expired in April 2006, and the algorithm is presently in the
public domain. The
United States Supreme Court has held that mathematics cannot be patented in
Gottschalk v. Benson, In that case, the Court first addressed whether computer algorithms could be patented and it held that they could not because the patent system does not protect ideas and similar abstractions. In
Diamond v. Diehr, the Supreme Court stated, "A mathematical formula as such is not accorded the protection of our patent laws, and this principle cannot be circumvented by attempting to limit the use of the formula to a particular technological environment. In
Mayo Collaborative Services v. Prometheus Labs., Inc., the Supreme Court explained further that "simply implementing a mathematical principle on a physical machine, namely a computer, [i]s not a patentable application of that principle." == Applications ==