Claus Fieker
email: fieker@mathematik.uni-kl.de

William Hart

Tommy Hofmann
email: thofmann@mathematik.uni-kl.de

Fredrik Johansson
email: fredrik.johansson@gmail.com

Nemo/Hecke: Computer Algebra and Number Theory Packages for the Julia Programming Language

Keywords:

ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

INTRODUCTION

Nemo 1 is a computer algebra package for the Julia programming language. The eventual aim is to provide highly performant commutative algebra, number theory, group theory and discrete geometry routines. Hecke is a Julia package that builds on Nemo to cover algebraic number theory.

Nemo consists of two parts: wrappers of specialised C/C++ libraries (Flint [START_REF] Hart | FLINT: Fast Library for Number Theory[END_REF], Arb [START_REF] Johansson | Arb: A C library for ball arithmetic[END_REF], Antic [START_REF] Hart | ANTIC: Algebraic Number Theory in C, Computeralgebra Rundbrief 56[END_REF] and Singular [START_REF] Decker | Singular -A computer algebra system for polynomial computations[END_REF]), and implementations of generic algorithms and mathematical data structures in the Julia language. So far the fully recursive, generic constructions include univariate and multivariate polynomial rings, power To write such a generic function, we first create an abstract type, then we create the individual concrete types that belong to that abstract type. The generic function is then specified with a type parameter, T say, belonging to the abstract type.

In Julia, the symbol <: is used to specify that a given type belongs to a given abstract type. For example the built-in Julia type Int64 for 64-bit machine integers belongs to the Julia abstract type Integer.

Abstract types in Julia can form a hierarchy. For example, the Nemo.Field abstract type belongs to the Nemo.Ring abstract type. An object representing a field in Nemo has type belonging to Nemo.Field. But because we define the inclusion Nemo.Field <: Nemo.Ring, the type of such an object also belongs to Nemo.Ring. This means that any generic function in Nemo which is designed to work with ring objects will also work with field objects.

Julia always picks the most specific function that applies to a given type. This allows one to implement a function at the most general level of a type hierarchy at which it applies. One can also write a version of a given function for specific concrete types. For example, one may wish to call a specific C implementation for a multiplication algorithm, say, when arguments with a certain very specific given type are passed.

Another way that we make use of Julia's abstract type system in Nemo/Hecke is to distinguish between the type of elements of fields, and the fields themselves, and similarly for all other kinds of domains in Nemo.

Figure 1 shows the abstract type hierarchy in Nemo. Naively, one may expect that specific mathematical domains in Nemo/Hecke can be modeled as types and their elements as objects of the given type. But there are various reasons why this is not a good model.

As an example, consider the ring R = Z/nZ. If we were to model the ring R as a type, then the type would need to contain information about the modulus n. This is not possible in Julia if n is an object, e.g. a multiprecision integer. Further, Julia dispatches on type, and each time we call a generic function with values of a new type, the function is recompiled by the JIT compiler for that new type. This would result in very poor performance if we were writing a multimodular algorithm, say, as recompilation would be triggered for each distinct modulus n. For this reason, the modulus n needs to be attached to the elements of the ring, not to the type associated with those elements.

The way we deal with this is to have special (singleton) objects, known as parent objects, that act like types, but are in fact ordinary Julia objects. As ordinary objects, parents can contain arbitrary information, such as the modulus n in Z/nZ. Each object representing an element of the ring then contains a pointer to this parent object.

This model of mathematical parent objects is taken from Sage-Math [START_REF] Developers | SageMath, the Sage Mathematics Software System (Version 7.4)[END_REF] which in turn followed Magma [START_REF]Handbook of Magma Functions[END_REF].

Julia allows ordinary objects to be made callable. We make use of the facility to write coercions and constructors for elements of mathematical domains in Nemo/Hecke. For example, the following code constructs a = 3 (mod 7).

R = ResidueRing(ZZ, 7) a = R(3)
We also make use of the parent object system to encode information such as context objects needed by C libraries. As Julia objects can have precisely the same bit representation as native C objects, parent objects can be passed directly to C functions. Additional fields in these objects can be safely appended if it is desirable to retain more information at the Julia level than the C/C++ level.

Nemo wraps C types provided by libraries such as Flint for ground domains. For example, Nemo's ZZ wraps Flint's fmpz integer type. Nemo also uses specialised C implementations for nested structures where available. For instance, PolynomialRing(R, "x") which constructs the univariate polynomial ring R[x] automatically switches to a wrapper of Flint's fmpz_poly when R = Z instead of using the Julia implementation designed for generic R. which creates no new objects and avoids making a copy of the data in s that is not being modified.

In-place operations

In Julia, in-place operators save not only memory allocation and copying overheads, but also garbage collection costs, which may be substantial in the worst case.

NEMO EXAMPLES

We present a few Nemo code examples which double as benchmark problems.

Multivariate polynomials

The Fateman benchmark tests arithmetic in Z[x 1 , . . . ,x k ] by computing f • ( f + 1) where f = (1 + x + y + z + t ) n . In Nemo, this is expressed by the following Julia code:

) f = (1+x+y+z+t)^30 f*(f+1)
Table 1 shows timing results compared to SageMath 7.4, Magma V2.22-5 and Giac-1.2.2 on a 2.2 GHz AMD Opteron 6174. We used sparse multivariate polynomials in all cases (this benchmark could also be performed using nested dense univariate arithmetic, i.e. in

Z[x][y][z][t]).

Nemo (generic) is our Julia implementation of Johnson's sparse multiplication algorithm which handles R[x 1 , . . . ,x k ] for generic coefficient rings R. Flint (no asm) is a reimplementation of the same algorithm in C for the special case R = Z, and Flint (asm) is an assembly optimised version of this code. Finally, Flint (array) and Giac implement an algorithm designed for dense polynomials, in which terms are accumulated into a big array covering all possible exponents.

Table 2 shows timing results on the Pearce benchmark, which consists of computing f •д where f = (1 + x +y + 2z2 + 3t 3 + 5u 5 ) n , д = (1 + u + t + 2z 2 + 3y 3 + 5x 5 ) n . This problem is too sparse to use the big array method, so only the Johnson algorithm is used.

By default, Nemo uses Flint for multivariate polynomials over R = Z instead of the generic Julia code 2 . We have timed both versions here to provide a comparison between Julia and C. It is somewhat remarkable that the generic Julia code comes within a factor two of our C version in Flint (without asm), and even runs slightly faster than the C code in Magma.

Generic resultant

The following Nemo example code computes a resultant in the ring ((GF (17 11 )[y])/(y 3 + 3xy + 1))[z], demonstrating generic recursive rings and polynomial arithmetic. Flint is used for univariate polynomials over a finite field. R, x = FiniteField (17, 11, "x") S, y = PolynomialRing(R, "y") T = ResidueRing(S, y^3 + 3x*y + 1) U, z = PolynomialRing(T, "z") f = (3y^2+y+x)*z^2 + ((x+2)*y^2+x+1)*z + 4x*y + 3 g = (7y^2-y+2x+7)*z^2 + (3y^2+4x+1)*z + (2x+1)*y + 1 s = f^12 t = (s + g)^12 resultant(s, t)

This example takes 179907 s in SageMath 6.8, 82 s in Magma V2.21-4 and 0.2 s in Nemo 0.4.

Generic linear algebra

We compute the determinant of a random 80×80 matrix with entries in a cubic number field. This benchmark tests generic linear algebra over a field with coefficient blowup. The number field arithmetic is provided by Antic.

GENERIC ALGORITHMS IN NEMO

Many high level algorithms in number theory and computer algebra rely on the efficient implementation of fundamental algorithms. We next discuss some of the algorithms used in Nemo for generic polynomials and matrices.

Polynomial algorithms

For generic coefficient rings, Nemo implements dense univariate polynomials, truncated power series (supporting both relative and absolute precision models), and multivariate polynomials in sparse distributed format.

The generic polynomial resultant code in Nemo uses subresultant pseudoremainder sequences. This code can even be called for polynomials over a ring with zero divisors, so long as impossible inverses are caught. The exception can be caught using a try/catch block in Julia and a fallback method called, e.g. the resultant can be computed using Sylvester matrices. This allows an algorithm with quadratic complexity to be called generically, with an algorithm of cubic complexity only called as backup.

We make use of variants of the sparse algorithms described by Monagan and Pearce for heap-based multiplication [START_REF] Monagan | Parallel sparse polynomial multiplication using heaps[END_REF], exact division and division with remainder [START_REF] Monagan | Sparse polynomial division using a heap[END_REF] and powering [START_REF] Monagan | Sparse polynomial powering using heaps[END_REF]. For powering of polynomials with few terms, we make use of the multinomial formula. For multivariate polynomials over Z, we used the generic Julia code as a template to implement a more optimised C version in Flint.

In the case of pseudodivision for sparse, multivariate polynomials, we extract one of the variables and then use a heap-based, univariate pseudoremainder algorithm inspired by an unpublished manuscript of Monagan and Pearce.

We make use of this pseudoremainder implementation to implement the subresultant GCD algorithm. To speed the latter up, we make use of a number of tricks employed by the Giac/XCAS system [START_REF] Parisse | Giac/Xcas version 1.2.2[END_REF], as taught to us by Bernard Parisse. The most important of these is cheap removal of the content that accumulates during the subresultant algorithm by analysing the input polynomials to see what form the leading coefficient of the GCD can take.

We also use heuristics to determine which permutation of the variables will lead to the GCD being computed in the fastest time. This heuristic favours the variable with the lowest degree as the main variable for the computation, with the other variables following in increasing order of degree thereafter. But our heuristic heavily favours variables in which the polynomial is monic.

Matrix algorithms

For computing the determinant over a generic commutative ring, we implemented a generic algorithm making use of Clow sequences [START_REF] Soltys | Berkowitz's algorithm and clow sequences[END_REF] which uses only O (n 4 ) ring operations in the dimension n of the matrix. However, two other approaches seem to always outperform it. The first approach makes use of a generic fraction free LU decomposition. This algorithm may fail if an impossible inverse is encountered. However, as a fallback, we make use of a division free determinant algorithm. This computes the characteristic polynomial and then extracts the determinant from that.

For determinants of matrices over polynomial rings, we use an interpolation approach.

We implemented an algorithm for computing the characteristic polynomial due to Danilevsky (see below) and an algorithm that is based on computing the Hessenberg form. We also make use of a generic implementation of the algorithm of Berkowitz which is division free.

As is well known, fraction free algorithms often improve the performance of matrix algorithms over an integral domain. For example, fraction free Gaussian elimination for LU decomposition, inverse, determinant and reduced row echelon form are well-known.

We have also been able to use this strategy in the computation of the characteristic polynomial. We have adapted the well-known 1937 method of Danilevsky [START_REF] Danilevsky | The numerical solution of the secular equation, (Russian)[END_REF] for computing the characteristic polynomial, into a fraction-free version.

Danilevsky's method works by applying similarity transforms to reduce the matrix to Frobenius form. Normally such computations are done over a field, however each of the outer iterations in the algorithm introduce only a single denominator. Scaling by this denominator allows us to avoid fractions. The entries become larger as the algorithm proceeds because of the scaling, but conveniently it is possible to prove that the introduced scaling factor can be removed one step later in the algorithm. This is an exact division and does not lead to denominators.

Removing such a factor has to be done in a way that respects the similarity transforms. We achieve this by making two passes over the matrix to remove the common factor.

Minimal polynomial.

Next we describe an algorithm we have implemented for efficient computation of the minimal polynomial of an n × n integer matrix M. A standard approach to this problem is known as "spinning" [START_REF] Steel | A new algorithm for the computation of canonical forms of matrices over fields[END_REF]. We provide a brief summary of the main ideas, to fix notation and then describe our contribution, which is a variant making use of Chinese remaindering in a provably correct way.

We first summarise the theory for matrices over a field K. The theory relies on the following result, e.g. [START_REF] Vinberg | A Course in Algebra[END_REF]. Theorem 4.1. Suppose M is a linear operator on a K-vector space V , and that

V = W 1 +W 2 + • • • +W n for invariant subspaces W i . Then the minimal polynomial of M is LCM(m 1 ,m 2 , . . . ,m n ), where m i is the minimal polynomial of M restricted to W i .
The subspaces W i we have in mind are the following. Definition 4.2. Given a vector v in a vector space V the Krylov subspace K (V ,v) associated to v is the linear subspace spanned by {v,Mv,M 2 v, . . .}.

Krylov subspaces are invariant subspaces and so these results lead to an algorithm for computing the minimal polynomial as follows.

Start with v 1 = e 1 = (1, 0, . . . , 0) and let W 1 = K (V ,v 1 ). For each i > 1 let v i be the first standard basis vector e j that is linearly independent of

W 1 + W 2 + • • • + W i-1 . Set W i = K (V ,v i ). By con- struction, V = W 1 + W 2 + • • • + W n ,
and the minimal polynomial of M is the least common multiple of the minimal polynomials m i of M restricted to the W i .

The minimal polynomials m i are easy to compute. For, if v, Mv, M 2 v, . . . ,M d -1 v is a basis for W i , there is a linear relation

M d v + c d -1 M d -1 v + • • • + c 1 Mv + c 0 v = 0,
for some c i ∈ K, and no smaller such relation. Letting

m i (T ) = c 0 + c 1 T + • • • + T d , we have m i (M )(v) = 0. One sees that m i (M )( f (M )v) = 0 for all polynomials f (T ) ∈ K[T ]
and so m i (M ) annihilates all of W i . Thus m i is the required minimal polynomial.

To efficiently implement this algorithm, we keep track of and (incrementally) reduce a matrix B whose rows consist of all the linearly independent vectors from the Krylov sequences computed so far. Any column without a pivot in this reduced matrix B corresponds to a standard basis vector independent of the Krylov subspaces computed so far. As each new Krylov subspace is computed, we append the corresponding vectors to the matrix B, and reduce them.

It is also possible to define the minimal polynomial of a matrix M over Z, since the null ideal

N D (M ) = { f (T ) ∈ D[T ] | f (M ) = 0}
of a matrix M over an integrally closed domain D is principal [START_REF] Brown | Null ideals and spanning ranks of matrices[END_REF].

In the case D = Z, we can define the minimal polynomial m(T ) of M to be a (primitive) generator of this ideal. We have that m(T ) is monic since the characteristic polynomial of M is monic and an element of the null ideal. By Gauss' Lemma for polynomials, this argument also shows that the minimal polynomial of M is the same as that of M considered as a matrix over Q.

We have been informed by personal communication that the algorithm used by Magma [START_REF]Handbook of Magma Functions[END_REF] for minimal polynomial computation over Z uses spinning, however it uses a p-adic approach. Unfortunately we have been unable to find a publication outlining their method.

We describe a multimodular variant of the spinning approach. The idea is to reduce the matrix M modulo many small primes p and apply the method described above over the field Z/pZ, for each prime p. We then combine the minimal polynomials modulo the various primes p using Chinese remaindering.

The minimal polynomial of the reduction M (p ) of M modulo p is the reduction modulo p of the minimal polynomial m(T ) of M for all but finitely many "bad" primes (see [START_REF] Giesbrecht | Computing rational forms of integer matrices[END_REF] Lemma 2.3). Bad primes are detected if the degrees of the minimal polynomials modulo p change at any point during the algorithm.

Whilst bounds on the number of primes required in the Chinese remaindering exist, e.g. based on Ovals of Cassini, these bounds are typically extremely pessimistic. It is also unfortunately too expensive to simply evaluate the minimal polynomial m(T ) at the matrix M and compare with zero.

We obtain a better termination criterion by allowing a small amount of information to 'leak' from the modulo p minimal polynomial computations. Namely, for one of the (good) primes p, we record which standard basis vectors v i were used to generate the Krylov subspaces W i when computing the minimal polynomial of

M (p ) . Recall that V = W 1 + W 2 + • • • + W n , where M (p ) is thought
of as a linear operator on V .

Thinking of M as a linear operator on a Q-vector space V ′ , and letting

W ′ i = K (V ′ ,v ′ i ), where v ′ i is the lift of v i to Q, it is clear that V ′ = W ′ 1 + W ′ 2 + • • • + W ′ n .
Thus, if m(T ) is believed to be the minimal polynomial of M, e.g. because the Chinese remaindering has stabilised, then if m(M )v ′ i = 0 for all i, then m(T ) is the minimal polynomial of M over Q. This follows because if m(M )v ′ i = 0 then m(M ) annihilates all of W ′ i for each i. Thus it annihilates all of V ′ .

The cost of computing the m(M )v ′ i is usually low compared to computing m(M ) directly, since it consists of matrix-vector rather than matrix-matrix multiplications.

In the worst case this algorithm requires O (n 4 ) operations over Z (once we encounter a good prime), but this is far from the generic case, even when the minimal polynomial is not the characteristic polynomial.

In practice our multimodular algorithm seems to slightly outperform Magma on the examples we have tried, including matrices with minimal polynomial smaller than the characteristic polynomial. A generic version of the algorithm over fields is implemented in Julia code in Nemo, and an efficient version over Z using the Chinese remaindering trick is implemented in Flint and made available in Nemo.

C/C++ WRAPPERS IN NEMO 5.1 Flint: arithmetic and number theory

Flint provides arithmetic over Z, Q, Z/nZ, GF(q), Q p as well as matrices, polynomials and power series over most of these ground rings. Nemo implements elements of these rings as thin wrappers of the Flint C types.

Flint uses a number of specialised techniques for each domain. For example, Flint's multiplication in Z[x] uses a best-of-breed algorithm which selects classical multiplication, Karatsuba multiplication, Kronecker segmentation or a Schönhage-Strassen FFT, with accurate cutoffs between algorithms, depending on the degrees and coefficient sizes.

In some cases, Flint provides separate implementations for wordsize and arbitrary-size coefficients. Nemo wraps both versions and transparently selects the optimised word-size version when possible.

Additional Flint algorithms wrapped by Nemo include primality testing, polynomial factorisation, LLL, and Smith and Hermite normal forms of integer matrices.

Arb: arbitrary precision ball arithmetic

Computing over R and C requires using some approximate model for these fields. The most common model is floating-point arithmetic. However, for many computer algebra algorithms, the error analysis necessary to guarantee correct results with floating-point arithmetic becomes impractical. Interval arithmetic solves this problem by effectively making error analysis automatic.

Nemo includes wrapper code for the C library Arb, which implements real numbers as arbitrary-precision midpoint-radius intervals (balls) [m ± r ] and complex numbers as rectangular boxes [a ± r 1 ] + [b ± r 2 ]i. Nemo stores the precision in the parent object. For example, R = ArbField(53) creates a field of Arb real numbers with 53-bit precision. Arb also supplies types for polynomials, power series and matrices over R and C, as well as transcendental functions. Like Flint, Arb systematically uses asymptotically fast algorithms for operations such as polynomial multiplication, with tuning for different problem sizes.

Many problems can be solved using lazy evaluation: the user can try a computation with some tentative precision p and restart with precision 2p if that fails. The precision can be set optimally when a good estimate for the minimal required p is available; that is, the intervals can be used as if they were plain floating-point numbers, and the automatic error bounds simply provide a certificate.

Alternative implementations of R and C may be added to Nemo in the future. For example, it would sometimes be more convenient to use a lazy bit stream abstraction in which individual numbers store a symbolic DAG representation to allow automatically increasing their own precision.

Antic: algebraic number fields

Antic is a C library, depending on Flint, for doing efficient computations in algebraic number fields. Nemo uses Antic for number field element arithmetic. We briefly describe some of the techniques Antic uses for fast arithmetic, but refer the reader to the article [START_REF] Hart | ANTIC: Algebraic Number Theory in C, Computeralgebra Rundbrief 56[END_REF] for full details.

Antic represents number field elements as Flint polynomials thereby benefiting from the highly optimised polynomial arithmetic in Flint. However, a few more tricks are used.

Firstly, Antic makes a number of precomputations which are stored in a context object to speed up subsequent computations with number field elements. Number field parent objects in Nemo consist precisely of these context objects.

The first is a precomputed inverse of the leading coefficient of the defining polynomial of the number field. This helps speed up reduction modulo the defining polynomial.

The second is an array of precomputed powers x i modulo the defining polynomial f (x ). This allows fast reduction of polynomials whose degree exceeds that of the defining polynomial, e.g. in multiplication of number field elements д and h where one wants wants to compute д(x )h(x ) (mod f (x )).

The third precomputation is of Newton sums

S k = n i=1 θ k i
where the θ i are the roots of the defining polynomial f (x ). These Newton sums are precomputed using recursive formulae as described in [START_REF] Cohen | A course in computational algebraic number theory[END_REF]. They are used to speed up the computation of traces of elements of the number field. Norms of elements of number fields are computed using resultants, for which we use the fast polynomial resultant code in Flint. Inverses of elements are computed using the fast polynomial extended GCD implementation in Flint.

Antic also offers the ability to do multiplication of number field elements without reduction. This is useful for speeding up the dot products that occur in matrix multiplication, for example. Instead of reducing after every multiplication, the unreduced products are first accumulated and their sum can be reduced at the end of the dot product.

To facilitate delayed reduction, all Antic number field elements are allocated with sufficient space to store a full polynomial product, rather than the reduction of such a product.

Singular: commutative algebra

Singular [START_REF] Decker | Singular -A computer algebra system for polynomial computations[END_REF] is a C/C++ package for polynomial systems and algebraic geometry. Recently, we helped prepare a Julia package called Singular.jl, which is compatible with Nemo. It will be described in a future article.

HECKE: ALGEBRAIC NUMBER THEORY IN JULIA

Hecke is a tool for algebraic number theory, written in Julia. Hecke includes the following functionality:

• element and ideal arithmetic in orders of number fields,

• class group and unit group computation,

• verified computations with embeddings and • verified residue computation of Dedekind zeta functions.

Hecke is written purely in Julia, though it makes use of Flint, Arb and Antic through the interface provided by Nemo. Hecke also applies the generic constructions and algorithms provided by Nemo to its own types. This allows for example to work efficiently with polynomials or matrices over rings of integers without the necessity to define special types for these objects.

For most computational challenges we rely on well known techniques as described in [START_REF] Belabas | Topics in computational algebraic number theory[END_REF][START_REF] Cohen | A course in computational algebraic number theory[END_REF][START_REF] Pohst | Algorithmic algebraic number theory[END_REF] (with a few modifications). However, we use new strategies for ideal arithmetic and computations with approximations.

Fast ideal arithmetic in rings of integers

A classical result is that in Dedekind domains, as for the ring of integers of a number field, any ideal can be generated using only two elements, one of which can be chosen at random in the ideal. This representation is efficient in terms of space compared to storing a Z-basis. However, the key problem is the lack of efficient algorithms for working with two generators. We remark that one operation is always efficient using two generators: powering of ideals.

A refinement of this idea, due to Pohst and Zassenhaus [24, p. 400], is a normal presentation. Here a finite set S of prime numbers is fixed, typically containing at least all prime divisors of the norm of the ideal. Then, based on this set, the two generators are chosen: The first as an integer having only divisors in S-but typically with too high multiplicities. The second generator then has the correct multiplicity at all prime ideals over primes in S-but is allowed to have other divisors as well.

For the remainder of this section, let K/Q be a number field of degree n and O K be its ring of integers. Definition 6.1. Let S be a finite set of prime numbers and A a nonzero ideal such that all primes p dividing the norm

N (A) = |O K /A| are in S. A tuple (a,α ) is an S-normal presentation for A if and only if • we have a ∈ A ∩ Z, α ∈ A, • for all prime ideals Q over p S we have v Q (a) = v Q (A) = 0 for the exponential valuation v Q associated to Q, • for all prime ideals Q over p ∈ S we have v Q (α ) = v Q (A).
A direct application of the Chinese remainder theorem shows the existence of such normal presentations. The algorithmic importance comes from the following result. Theorem 6.2. Let A = ⟨a,α⟩ be an ideal in S-normal presentation. Then the following hold:

(1) We have N (A) = gcd(a n , N (α )).

(2) If B = ⟨b, β⟩ is a second ideal in S-normal presentation for the same set S, then AB = ⟨ab,α β⟩ is also a S-normal presentation.

(3) Let γ = 1/α, ⟨д⟩ = α O K ∩ Z, д = д 1 д 2 with coprime д 1 , д 2
and д 2 only divisible by primes not in S. Then A -1 = ⟨1,д 2 γ ⟩ is an S-normal presentation. (4) If p is a prime number and P = ⟨p,θ ⟩ a prime ideal over p in {p}-normal presentation, then the {p}-normal presentation of P -1 = ⟨1,γ ⟩ yields a valuation element, that is, v

P (β ) = max{k | γ k β ∈ O K } for all β ∈ O K .
It should be noted that (almost all) prime ideal are naturally computed in {p}-normal presentation. The key problem in using the theorem for multiplication is that both ideals need to be given by an S-normal presentation for the same set S, which traditionally is achieved by recomputing a suitable presentation from scratch, taking random candidates for the second generator until it works. Based on the following lemma, we have developed a new algorithm that manages it at the cost of a few integer operations only. Lemma 6.3. Let S be a finite set of prime numbers and A = ⟨a,α⟩ an ideal in S-normal presentation. Let T be a second set of primes and set s = x ∈S x as well as t = x ∈T \S x. If 1 = gcd(as,t ) = uas +vt, then ⟨a, β⟩ is an S ∪ T -normal presentation, where β = vtα + uas.

Proof. By definition, a has only prime divisors in S, so as and t are coprime. Also, a is a possible first generator for the S ∪ Tnormal presentation. Let P be a prime ideal over a prime p ∈ S, then v P (β ) = v P (α ) = v P (A) since v P (A) < v P (s) + v P (a) due to v P (s) ≥ 1 and v P (a) ≥ v P (A) by definition. For P coming from T \ S, we have v P (β ) = 0 since v P (t ) ≥ 1 and v P (uas) = 0 as well.

□

Using this lemma on both input ideals, we can obtain compatible S-normal presentations at the cost of two gcd computations, a few integer multiplications and two products of integers with algebraic numbers. The final ideal multiplication is then a single integer product and a product of algebraic numbers. Thus the asymptotic cost is that of a single multiplication of two algebraic numbers. In contrast, all previous algorithms require a linear algebra step.

Finally, we improve on the computation of an S-normal presentation. Together with the above lemma, this allows for the rapid computation of a normal presentation: Choose α ∈ A at random until a normal presentation is obtained. It can be shown that, unless a involves many ideals of small norm, this is very efficient.

To illustrate the speed of our algorithm, we created a list of ideals of bounded norm (here: 400) and took random products of 100 ideals in the field defined by the polynomial X n + 2 for n = 16, 32, 64, 128. The results are presented in Table 3. Times are given in seconds.

The use of interval arithmetic

One is often forced to study algebraic number fields in a real or complex setting, e.g. embeddings into an algebraically closed field, or computing Dedekind zeta functions. This can be due to an intrinsic property of the problem, or it may be the fastest (known) way to solve the problem. Either way, the price is working with approximations. We give a few examples of this and show how the ball arithmetic provided by Arb is employed in Hecke for this purpose.

Computing conjugates. Let

K = Q[X ]/( f ) be an algebraic number field, where f ∈ Q[X ]
is an irreducible polynomial of degree d. We represent the elements of K as polynomials of degree less than d. Denoting by α 1 , . . . ,α d ∈ C the roots of f in C, the distinct embeddings K → C are given by σ i : K → C, X → α i . For an element α of K the complex numbers σ i (α ), 1 ≤ i ≤ d are called the conjugates of α. Since for α ∈ K \ Q the conjugates are irrational, it is clear that we must rely on approximations.

In Hecke this is done using ball arithmetic. Let α = a j X j be an element of K. Assume that we want to find σi (α ) ∈ R with |σ i (α ) -σi (α )| ≤ 2 -p for some precision p ∈ Z ≥1 . Using Arb's polynomial root finding functionality and some initial precision p ′ ≥ p we find balls B

(i ) p ′ ⊆ R such that α i ∈ B (i ) p ′ and diam(B (i ) p ′ ) ≤ 2 -p ′ . Ball arithmetic then yields balls B (i ) α ⊆ R with σ i (α ) = 1≤j ≤d a j α j i ∈ 1≤j ≤d a j (B (i ) p ′ ) j ⊆ B (i ) α .
Finally we check whether diam(B To perform the same task using floating point arithmetic would require a priori error analysis. Arb's ball arithmetic allows the error analysis to be carried along with the computation. This allows for fast development, while at the same time maintaining guaranteed results.

Torsion units.

For an algebraic number field K of degree d, the set {α ∈ K × | ∃n ∈ Z ≥1 : α n = 1} of torsion units is a finite cyclic subgroup of K × , which plays an important role when investigating the unit group of the ring of integers of K.

Given α ∈ K × it is important to quickly check if it is a torsion unit. A list of possible integers n with α n = 1 can be obtained as follows: If α is a torsion unit, then α is a primitive k-th root of unity for some k. In particular K contains the k-th cyclotomic field and φ (k ) divides n. Since there are only finitely many k with the property that φ (k ) divides n, for every such k we can test α k = 1 and in this way decide whether α is a torsion unit. While this works well for small n, for large n this quickly becomes inefficient.

A second approach rests on the fact that torsion units are characterized by their conjugates: An element α is a torsion unit if and only if |σ i (α )| = 1 for 1 ≤ i ≤ d. Although we can compute approximations of conjugates with arbitrary precision, since conjugates are in general irrational, it is not possible test whether they (or their absolute value) are exactly equal to 1.

We make use of the following result of Dobrowolski [START_REF] Dobrowolski | On the maximal modulus of conjugates of an algebraic integer[END_REF], which bounds the modulus of conjugates of non-torsion units. Lemma 6.6. If α is not a torsion unit, then there exists some 1 ≤ i ≤ k such that

1 + 1 6 log(d ) d 2 < |σ k (α )|.
We can rephrase this using approximation as follows. It is straightforward to turn this into an algorithm to test whether α is torsion: Approximate the conjugates of α using balls as in 6.2.1 for some starting precision p ≥ 1 and check if one of the statements of Lemma 6.7 hold. If not, increase the precision and start over. Since the radii of the balls tend to 0, by Lemma 6.7 the algorithm will eventually terminate.

6.2.3

Residues of Dedekind zeta functions. For a number field K and s ∈ C, Re(s) > 1, the Dedekind zeta function of K is defined as

ζ K (s) = {0} I ⊆ O K 1 N (I ) s ,
where the sum is over all nonzero ideals of the ring of integers O K of K. This function has an analytic continuation to the whole complex plane with a simple pole at s = 1. The analytic class number formula [START_REF] Cohen | A course in computational algebraic number theory[END_REF] states that the residue at that pole encodes important arithmetic data of K:

Res(ζ K , 1) = lim s→1 (s -1)ζ K (s) = h K • reg K • c K ,
where h K is the class number, reg K is the regulator and c K is another (easy to determine) constant depending on K.

The analytic class number formula is an important tool during class group computations. By approximating the residue, it allows one to certify that tentative class and unit groups are in fact correct (see [START_REF] Biasse | Subexponential class group and unit group computation in large degree number fields[END_REF]).

We describe the approximation under GRH using an algorithm of Belabas and Friedmann [START_REF] Belabas | Computing the residue of the Dedekind zeta function[END_REF], but it is also possible with results from Schoof [START_REF] Schoof | Quadratic fields and factorization[END_REF] or Bach [START_REF] Bach | Improved approximations for Euler products, Number theory[END_REF]. Since the aim is to illustrate the use of ball arithmetic, we will not give detailed formulas for the approximation or the error. Theorem 6.8 (Belabas-Friedmann). There exist functions д K , ε K : R → R, with |log(Res(ζ K , 1)) -д K (x )| ≤ ε K (x ) for all x ≥ 69. The evaluation of д K (x ) involves only prime powers p m ≤ x and prime ideal powers p m with N (p m ) ≤ x. Moreover the function ε K is strictly decreasing and depends only on the degree and the discriminant of K.

Assume that ε > 0 and we want to find z ∈ R such that |log(Res(ζ K , 1)) -z| ≤ ε.

We first compute an x 0 such that ε K (x 0 ) < ε/2. Note that since ε K is strictly decreasing, this can be done using ordinary floating point arithmetic with appropriate rounding modes. Once we have this value we compute a real ball B with д K (x 0 ) ∈ B and diam(B) ≤ ε/2 (as usual we progressively increase precision until the radius of the ball is small enough). By the choice of x 0 , the midpoint of B is an approximation to the logarithm of the residue with error at most ε. Again this yields a guaranteed result, but avoids the tedious error analysis due to the form of д K .

Figure 1 :

 1 Figure 1: The Nemo abstract type hierarchy

C

  libraries such as Flint allow mutating objects in-place, which improves performance especially when making incremental updates to large objects. Nemo objects are ostensibly immutable, but special mutation methods are provided for use in critical spots. Instead of writing s += a * b in Nemo, which creates an object for a * b and then replaces s with yet another new object, we create a reusable scratch variable t with the same type as a, b and s and use mul!(t, a, b) addeq!(s, t)

  QQx, x = PolynomialRing(QQ, "x") K, a = NumberField(x^3 + 3*x + 1, "a") M = MatrixSpace(K, 80, 80)() for i in 1:80 for j in 1:80 for k in 0:2 M[i, j] = M[i, j] + a^k * (rand(-100:100)) end end end det(M) This takes 5893 s in SageMath 6.8, 21.9 s in Pari/GP 2.7.4 [22], 5.3 s in Magma V2.21-4, and 2.4 s in Nemo 0.4.

Lemma 6 . 4 .

 64 If 0 α ∈ O K , then ⟨α⟩ ∩ Z = ⟨d⟩ where d > 0 is minimal such that d/α ∈ O K .Theorem 6.5 ([24]). Let A be a nonzero ideal. Then the tuple (a,α ) is an {p | p divides a}-normal presentation of A if and only if gcd(a,d/gcd(a,d )) = 1, where d = min(α O K ∩ N).

α

  ) ≤ 2 -p . If not, we increase the working precision p ′ and repeat. When finished, the midpoints of the balls B (i ) α are approximations σi (α ) with the desired property. The following Hecke code illustrates this. QQx, x = PolynomialRing(QQ, "x") K, a = NumberField(x^3 + 3*x + 1, "a") alpha = a^2 + a + 1 p = 128; p = p while true CCy, y = PolynomialRing(AcbField(p ), "y") g = CCy(x^3 + 3*x + 1) rts = roots(g) z = map(x^2 + x + 1, rts) if all([ radiuslttwopower(u, -p) for u in z]) break else p = 2*p end end

Lemma 6 . 7 .

 67 Let (B (i ) k ) k ≥1 ,1≤ i≤d, be sequences of real balls with |σ i (α )| ∈ B (i ) k and max i diam(B (i ) k ) → 0 for k → ∞. (1) If the element α is torsion, there exists k ≥ 1 such that 1 < B (i ) k for some 1 ≤ i ≤ d. (2) If the element α is non-torsion, there exists k ≥ 1 such that B (i ) k < 1 + log(d )/(6d 2 ) for all 1 ≤ i ≤ d.

Table 1 :

 1 Time (s) on the Fateman benchmark.

	n Sage-Magma Nemo	Flint Flint Flint Giac
	Math		(generic) (no asm) (asm) (array)
	5 0.008 ∼0.01	0.004	0.002 0.002 0.0003 0.0002
	10 0.53	0.12	0.11	0.04	0.02 0.005 0.006
	15 10	1.9	1.6	0.53	0.30 0.08	0.11
	20 76	16	14.3	6.3	2.8	0.53	0.62
	25 426	98	82	39	17.4	2.5	2.8
	30 1814	439	362	168	82	11	14

Table 2 :

 2 Time (s) on the Pearce benchmark.

	n SageMath Magma Nemo	Flint Flint Giac
				(generic) (no asm) (asm)
	4	0.01	∼0.01	0.008	0.003 0.002 0.004
	6	0.20	0.08	0.07	0.03	0.03 0.03
	8	2.0	0.68	0.56	0.16	0.15 0.28
	10	11	3.0	2.2	0.77	0.71 1.45
	12	57	11.3	8.8	3.7	3.2	4.8
	14	214	36.8	32.3	16	12	14
	16	785	94.0	85.5	44	32	39
	R,x,y,z,t = PolynomialRing(ZZ, ["x","y","z","t"]

Table 3 :

 3 Time (s) on ideal multiplication.

	n Magma Pari Hecke
	16 8.44 0.05 0.02
	32 235.82 0.18 0.04
	64 905.44 0.96 0.06
	128 7572.19 5.40 0.08

The new Flint type fmpz_mpoly is presently available in the git version of Flint. The mul_johnson (with and without asm enabled) and mul_array methods were timed via Nemo.

ACKNOWLEDGMENTS

This work was supported by DFG priority project SPP 1489, DFG SFB-TRR 195 and ERC Starting Grant ANTICS 278537.


N Kanari

I Gaballah

E Allain

Determination of Temperature Effect of Oxychlorination of Cr 2 O 3 and MgO using Non-Isothermal Conditions

Keywords: Thermogravimetric analysis, Oxychlorination, Chromium (III) oxide, Magnesium oxide, Non-isothermal conditions, Apparent activation energy

The effect of temperature on the oxychlorination of Cr 2 O 3 and MgO using Cl 2 +O 2 was evaluated using non-isothermal conditions. A mathematical treatment of the experimental data was performed. Results were compared with those obtained using isothermal conditions.

The oxychlorination of Cr 2 O 3 up to 650 °C was characterized by an apparent activation energy 'E a ' of about 83 kJ/mol. Beyond 650 °C, the reaction proceeded with an E a of about 51 kJ/mol. Between 850 °C and 1025 °C, the reaction of MgO with Cl 2 +O 2 was strongly dependent on temperature and its E a was equal to about 215 kJ/mol.

The values of the apparent activation energies, found for the oxychlorination of both oxides using non-isothermal conditions, were comparable to those obtained during isothermal treatment.

I. INTRODUCTION

The activation energy of a specific reaction is an important engineering data. It will condition the reactor size and the optimum temperature for any industrial application of this specific reaction. Generally, the effects of temperature on the gas-solid reactions are determined using isothermal conditions. Thus, solids are first heated at a predetermined temperature under an inert atmosphere and when a steady state is reached the reactive gases are introduced to react with the solid isothermally. The dependency of the reactions on the temperature is evaluated by Arrhenius plot. This method was recently used by Djona et al. [1] , Gaballah et al. [2] , Allain et al. [3] , and Kanari et al. [4] for the determination of the kinetics parameters of the chlorination and carbochlorination of some refractory metals oxides.

The literature survey revealed that some research works were devoted earlier to the determination of the temperature effect on the gas-solid reactions using one single non-isothermal experiment. Chaubal and Sohn [5] developed a theoretical approach to define the rate-controlling step of the chalcopyrite oxidation up to 877 °C using non-isothermal conditions. Similarly, Wang et al. [6] investigated the kinetics of the oxidation of cobaltite between 300 °C and 900 °C using the non-isothermal technique. Bustens et al. [START_REF] Bustnes | Paper presented at Proc. of the TMS Annual Meeting[END_REF] obtained consistent kinetics results testing isothermal and non-isothermal reduction of molybdenum and tungsten oxides by hydrogen.

The advantage of using one single non-isothermal test, to determine the temperature effect on gas-solid reactions, is time and material saving. However, if the gas reactivity towards the solid is high and the heating rate of furnace is low, the temperature effect will be defined only in a small temperature range. On the other hand, higher furnace heating rates will lead to a large difference of temperature between the sample and the bulk of reactive gas mixture. To avoid such disadvantage in determining the value of the apparent activation energy, at least two non-isothermal tests using different furnace heating rates are required. The determination of the temperature effect by the nonisothermal technique will be especially appreciated when the solids undergo various thermal phenomena such as : decomposition, sublimation, volatilization, dehydration, etc. This paper is focused on the determination of temperature effect of the oxychlorination rate of Cr 2 O 3 and MgO using non-isothermal conditions. The results were compared with those obtained for the isothermal oxychlorination of the same oxides.

II. THEORETICAL APPROACH

The following paragraphs describe the theoretical approach [5] for the determination of the activation energy of a gas-solid reaction under non-isothermal conditions.

The reaction rate of a process can be expressed as follow :

dX/dt = kf 1 (p A )f 2 (X)f 3 (d) [1]
where X is the reaction extent (defined to be the weight of the reacted fraction to the initial solid weight ratio), p A is the partial pressure of the reactive gas(es) and d is the mean particle size.

The effects of partial pressure of the reactive gases, reaction extent and particle size on the reaction rate are described by f 1 (p A ), f 2 (X) and f 3 (d), respectively. Arrhenius law gives the temperature effect on the reaction rate :

k = k 0 exp (-E a /RT) [2]
Integration of Eq. [1] in isothermal conditions gives :

dX/f (X) g(X) kf (p )f (d)dt 2 0 X 1 A 3 0 t ∫ = = ∫ [3]
The conversion function g(X) generally depends on the geometric change appearing in the solid as the reaction proceeds. The different types of g(X) were summarized earlier by Szekely et al. [START_REF] Szekely | Gas-Solid Reactions[END_REF] .

If the temperature is raised linearly with respect to time the temperature evolution may be given by Eq. [4] :

T = φt [4] or dT = φdt [5]
Substituting Equations [2] and [4] in Eq. [1] and rearranging the resulting equation, it was obtained :

Ln[(dX/dT)g'(X)] = Ln [k 0 f 1 (p A )f 3 (d)/φ]-E a /RT [6]
In the above equation, g'(X) is the derivative of g(X) with respect to X. The activation energy can be determined from the slop of data fitted by Eq. [6] when the appropriate type of g(X)

is determined.

III. MATERIALS AND EXPERIMENTAL PROCEDURE

The samples of chromium (III) oxide and magnesium oxide used for this study were of pure analytical grade. Results of physico-chemical analysis of these two samples were given earlier [8,[START_REF] Kanari | Paper presented at Proc. of the TMS Annual Meeting[END_REF] . They confirmed the purity of both those oxides.

The ThermoGravimetric Analysis 'TGA' of oxychlorination was investigated using 40 mg of sample. The experimental set described in Reference [9] was employed in this study. Its main unit was a CAHN 1000 micro-balance having a sensitivity of 10 µg. The oxychlorination gas mixture composed of Cl 2 +O 2 was purified using H 2 SO 4 and CaCl 2 columns before its introduction in the reactor. The sample was homogeneously distributed in a quartz crucible having a section of about 0.5 cm 2 . This crucible was hooked to the balance using quartz rods. For TGA isothermal runs, the sample was preheated in nitrogen atmosphere up to the desired temperature before the introduction of the chlorinating gas mixture. In the case of non-isothermal TGA runs, using a linear heating rate, the sample was directly heated in the chlorinating atmosphere.

IV. RESULTS

Oxychlorination of Cr 2 O 3

An oxychlorinating gas mixture of Cl 2 +O 2 having a linear velocity of about 33 cm/minute and a molar ratio Cl 2 /O 2 = 4 was used for the non-isothermal oxychlorination test of Cr 2 O 3 . This gas composition was chosen to allow the formation of chromium oxychloride according to Eq. [7].

Taking into account the reactivity of Cr 2 O 3 towards the oxychlorinating gas [8] , the heating rate of the sample (φ = dT/dt) was kept constant at about 2 °C/minute.

1/2 Cr 2 O 3 + Cl 2 + 1/4 O 2 → CrO 2 Cl 2 [7]
Figure 1 shows the evolution of the percent weight loss (pct WL) of the Cr 2 O 3 sample as function of the temperature using the conditions given above. Chromium trioxide starts to react with the oxychlorinating gas mixture at temperatures higher than 500 °C and about 80 pct of the sample were oxychlorinated at 850 °C. A higher heating rate of furnace would be necessary to get a lower reaction rate at lower temperatures. However, as mentioned in the introduction, higher furnace heating-rates would have led to a large temperature gradient between the sample and the gas bulk.

The data obtained during the isothermal oxychlorination of Cr 2 O 3 with Cl 2 +O 2 (Cl 2 /O 2 = 4) are available in Reference [8] and grouped in Figure 2a and 2b. It must be reported that the evolution of the reaction extent as function of time could be described by Eq. [8] and [9] at temperatures lower and higher than 650 °C, respectively.

1-(1-X) 1/3 = k t [8] 1-(1-X) 1/2 = k t [9]
where X is reaction extent, k is a constant and t is chlorination time.

Table I gives the fitting curves obtained using Eq. [8] (for X = 0.8) and concerning the isothermal oxychlorination of Cr 2 O 3 between 525 °C and 650 °C. Figure 3 (a) shows the Arrhenius diagram of the Cr 2 O 3 isothermal oxychlorination, plotted as the evolution of the rate constant as function of temperature. A value of apparent activation energy 'E a ' of about 94 kJ/mol was obtained for the isothermal oxychlorination of Cr 2 O 3 up to 650 °C. A similar value of E a was reported earlier [8] for the initial reaction rate of Cr 2 O 3 with Cl 2 +O 2 . Data of Figure 1, concerning the non-isothermal oxychlorination of Cr 2 O 3 , were processed using Eq. [6] and trying different possible formulations given by Szekely et al. [10] concerning the conversion function g(X) at temperatures up to 650 °C. The expression given by Eq. [8] was the best fitting for the linearilization of Ln[(dX/dT)g'(X)] as function of 1/T. The result is given in with the raise of temperature [8] .

Non-isothermal data of Cr 2 O 3 oxychlorination represented in Figure 1 (a) for the temperatures higher than 650 °C were also tried to be fitted by Eq. [6] for different types of the function g(X). The appropriateness of the fitting was determined by calculating the coefficient correlation. As for the isothermal test case, the best correlation was found using Eq. [9].

Oxychlorination of MgO

Isothermal oxychlorination of MgO with Cl 2 +O 2 between 850 °C and 1025 °C was described in details in Reference [11] and summarized by Figure 5 a and 5 b. The chlorination of MgO by chlorine can be represented by Eq. [10]. The generated magnesium chloride is characterized by its melting and boiling points of 714 °C and 1412 °C, respectively [START_REF] Lide | Chief, Handbook of Chemistry and Physics[END_REF] . To insure that the rate of MgCl 2 volatilization was higher than that of its formation, it was suggested to increase the partial pressure of oxygen in the system to decrease the rate of the chlorination of MgO by chlorine. Thus, the chlorination of MgO was achieved using an oxychlorinating gas mixture Cl 2 +O 2 having a molar ratio Cl 2 /O 2 = 4.

To determine the effect of temperature on the oxychlorination rate of MgO one single nonisothermal test under Cl 2 +O 2 (Cl 2 /O 2 = 4) was carried out from about 575 °C to 1025 °C. As the reactivity of MgO towards oxychlorinating gas mixture was relatively low [START_REF] Kanari | Paper presented at Proc. of the TMS Annual Meeting[END_REF] , the heating rate of the sample was chosen to be about 1 °C/minute. This heating rate generates accurate data as the temperature gradient between the sample and the gas bulk is small. The evolution of the temperature and pct WL of the sample as a function of time are shown in Figure 6. Magnesium oxide started to react with the oxychlorinating gas mixture at temperatures higher than 750 °C and about 70 pct of the sample had reacted at 1025 °C.

MgO + Cl 2 → MgCl 2 + 1/2 O 2 [10]
The main kinetics data obtained during the isothermal treatment of MgO in Cl 2 +O 2 (Cl 2 /O 2 = 4) are given in Table III. The evolution of the reaction extent (X = 0.7) as function of time for all isotherms was appropriately described by Eq. [9]. The Arrhenius plot of Figure 7 Using Eq. [6], it is clear that the activation energy could be determined only after finding the appropriate form of g(X). As for the isothermal tests, different models of the conversion function g(X) were tried and the best data fitting was obtained using Eq. [9]. The data were plotted in Figure 7 (b) using Eq. [6]. A value of E a of about 215 kJ/mol was deduced for the non-isothermal oxychlorination of MgO, between 850 °C and 1025 °C, for a reaction extent up to 0.7. Figure 7 indicates that the activation energy values calculated using the two sets of data, for MgO oxychlorination, were within the experimental error (213 and 215 kJ/mol). This result confirms once again the validity of the non-isothermal measurements to determine the activation energy of a reaction.

IV. CONCLUSIONS

The non-isothermal technique was found to be suitable for studying the effect of temperature on the oxychlorination of chromium and magnesium oxide. Results were in good agreement with those obtained during isothermal treatment.

Oxychlorination of chromium (III) oxide was characterized by an apparent activation energy values of about 83 and 51 kJ/mol for temperatures lower and higher than 650 °C, respectively.

The oxychlorination of magnesium oxide between 850 °C to 1025 °C was strongly depended on the temperature with an apparent activation energy of about 215 kJ/mol.

FIGURE CAPTIONS

Figure 3 (

 3 Figure 3 (b). A value of E a of about 83 kJ/mol was obtained for the non-isothermal oxychlorination of Cr 2 O 3 up to 650 °C. This value is in fairly good agreement with the value obtained from isothermal treatment tests.

  4 a) is due to the decrease of the sample specific surface area

Figure 4 (

 4 b) represents the plot of Eq.[6] for non-isothermal treatment of Cr 2 O 3 with Cl 2 +O 2 . A value of E a of about 51 kJ/mol was calculated from the slope of this plot. The comparison of the results exhibited in Figures4 (a) and (b) shows that the values of the apparent activation energy within the experimental error.

  (a) reveals the temperature effect of the MgO isothermal oxychlorination. An apparent activation energy of about 213 kJ/mol was deduced this Arrhenius diagram.

Figure 1 :

 1 Figure 1 : TGA of Cr 2 O 3 oxychlorination using linear temperature raise.

Figure 2 :

 2 Figure 2 : Isotherms of oxychlorination of Cr2O3 for (a) T ≤ 700 °C and (b) T ≥ 750 °C.

Figure 3 :

 3 Figure 3 : Effect of temperature on the oxychlorination of Cr 2 O 3 up to 650 °C using isothermal (a) and non-isothermal (b) conditions.

Figure 4 :

 4 Figure 4 : Effect of temperature on the oxychlorination of Cr 2 O 3 at temperatures higher than 650 °C using isothermal (a) and non-isothermal (b) conditions.

Figure 5 :

 5 Figure 5 : Isotherms of oxychlorination of MgO for (a) T ≤ 925 °C and (b) T ≥ 950 °C.

Figure 6 :

 6 Figure 6 : TGA of MgO oxychlorination using linear temperature raise.

Figure 7 :

 7 Figure 7 : Effect of temperature on the oxychlorination of MgO between 850 °C and 1025 °C using isothermal (a) and non-isothermal (b) conditions.

Figure 1 :Figure 2 :

 12 Figure 1 : TGA of Cr 2 O 3 oxychlorination using linear temperature raise.

Figure 4 :

 4 Figure 4 : Effect of temperature on the oxychlorination of Cr 2 O 3 at temperatures higher than 650 °C using isothermal (a) and non-isothermal (b) conditions.

Figure 3 :Figure 6 :

 36 Figure 3 : Effect of temperature on the oxychlorination of Cr 2 O 3 up to 650 °C using isothermal (a) and non-isothermal (b) conditions.

Figure 5 :

 5 Figure 5 : Isotherms of oxychlorination of MgO for (a) T ≤ 925 °C and (b) T ≥ 950 °C.

Figure 7 :

 7 Figure 7 : Effect of temperature on the oxychlorination of MgO between 850 °C and 1025 °C using isothermal (a) and non-isothermal (b) conditions.

Table I :

 I Kinetics Data Obtained during the Isothermal Oxychlorination of Cr 2 O 3 between 525 °C and 650 °C.

	Temperature	Value of C c * of the data fitted	Value of the rate constant
	°C	by : 1-(1-X) 1/3 = kt	'k'
	525	0.998	2.61 10 -4
	550	0.997	3.44 10 -4
	575	0.995	5.93 10 -4
	600	1.000	8.49 10 -4
	625	0.999	1.26 10 -3
	650	0.998	1.61 10 -3
	C

c : Correlation coefficient

Table II :

 II Kinetics Data Obtained during the Isothermal Oxychlorination of Cr 2 O 3 between 680 °C and 1000 °C.

	Temperature	Value of C c * of the data fitted	Value of the rate constant
	°C	by : 1-(1-X) 1/2 = kt	'k'
	680	1.000	3.11 10 -3
	700	1.000	3.56 10 -3
	750	1.000	4.59 10 -3
	800	1.000	5.96 10 -3
	850	1.000	7.71 10 -3
	900	1.000	9.15 10 -3
	950	0.999	1.15 10 -2
	1000	0.999	1.45 10 -2
	C

c : Correlation coefficient

Table III :

 III Kinetics Data Obtained during the Isothermal Oxychlorination of MgO between 850 °C and 1025 °C.

	Temperature	Value of C c * of the data fitted	Value of the rate constant
	°C	by : 1-(1-X) 1/2 = kt	'k'
	850	0.999	3.65 10 -4
	875	0.999	6.18 10 -4
	900	0.997	9.72 10 -4
	925	0.997	1.50 10 -3
	950	0.999	2.33 10 -3
	975	0.999	3.69 10 -3
	1000	0.999	5.32 10 -3
	1025	0.998	7.98 10 -3
	C

c : Correlation coefficient

ACKNOWLEDGMENTS

This work was performed in the frame of contract N° BRE2-CT92-0173 thanks to the financial support of the European Union (DG-XII). The authors thank Dr. H. L. Schmidt for discussion, suggestion and help. They also would like to thank Drs. J. C. Mugica, R. Solozabal (INASMET, San Sebastian, Spain) and M. Coelho (INETI, Lisbon, Portugal) for technical discussions. Authors are indebted to Drs. A. Bonazébi, M. Djona, S. Ivanaj, N. Menad, N. Mirghaffari for discussions and help on different topics and to Mrs. C. Richard for technical and administrative support.


Bjørge Timenes Laugen
email: bjorge.laugen@uis.no

Astrid Heidemann Lassen

COLLABORATIVE INNOVATION: INTERNAL AND EXTERNAL INVOLVEMENT IN NEW PRODUCT DEVELOPMENT

Keywords: Strategic priorities, NPD collaboration, survey. 1

Industry and academia alike are increasingly becoming aware of the fact that innovation does not take place in isolated cells or functions within the firm. During the last the years the term open innovation has emphasized the importance of internal and external collaboration in order to increase the competitiveness of companies. Although the idea of involving internal and external actors in the new product development (NPD) process is not new, the knowledge about the benefits and pitfalls is still limited. This paper aims to contribute to refining the concept of open innovation, by investigating how strategic priorities influence the degree of external and internal involvement in the NPD process, moderated by contextual factors.

Results based on analyses of 584 companies from the International Manufacturing Strategy Survey (IMSS) 2005 indicate that suppliers are heavily involved in the NPD process in firms in B2C markets aiming at increasing the innovation volume. For B2B companies the reverse picture emerges. However, when the aim is to increase the radicality of new products, suppliers and customers are heavily involved for firms in B2B markets. Further, market uncertainty, and to some extent company size, seems to moderate the relationships between strategy and involvement considerably.

 [START_REF] Chesbrough | The logic of open innovation: managing intellectual property[END_REF]argues that a shift from closed to open innovation principles is necessary for business survival.

However, the idea of involving internal and external actors in the innovation processes of companies is hardly new. [START_REF] Rothwell | Towards the fifth-generation innovation process[END_REF] argued that '[t]hese practices include internal organizational features, strong inter-firm vertical linkages, external horizontal linkages' [START_REF] Rothwell | Towards the fifth-generation innovation process[END_REF]. Internally, collaboration between production and R&D to avoid the 'throw over the wall' problem has been on the agenda for a long time, through concepts such as integrated problem solving [START_REF] Wheelwright | Accelerating the design-build-test cycle for effective product development[END_REF], design-for-manufacturing (DFM) (Susman 1992), computer aided design/manufacturing (CAD/CAM) systems, and concurrent engineering. Externally, market-pull and customer involvement in NPD, including lead user involvement (von Hippel 1998), have been proposed to counteract the dominant technology-push paradigm and to ensure that the NPD process develops products the market actually requests.

Several researchers have focused on cooperation between different business functions, such as R&D, marketing, manufacturing and engineering, in product development projects within an organization (i.e. [START_REF] Griffin | Integrating R&D and marketing: A review and analysis of the literature[END_REF][START_REF] Adler | Interdepartmental interdependence and coordination: The case of the design/manufacturing interface[END_REF], or investigated a broad spectrum of cooperative relationships with such diverse partners as customers, suppliers, research institutes, competitors, co-suppliers, and distributors [START_REF] Anderson | Dyadic business relationships within a business network context[END_REF][START_REF] Gemunden | Network configuration and innovation success: An empirical analysis in German high-tech industries[END_REF][START_REF] Hagedoorn | Understanding the rationale of strategic technology partnering: Interorganizational modes of cooperation and sectoral differences[END_REF], to enhance success in product development.

Some of the benefits with external collaboration are that close linkages with suppliers can reduce development cost and increase development speed (Rothwell 1994, p. 18). Further, accessing external know-how can also speed up new product development, as can buying or licensing-in existing technology. In cases of technology fusion, external alliances should, on the face of it, help to reduce both the time and the cost of developing radical new products (Rothwell 1994, p. 20). [START_REF] Powell | Interorganizational collaboration and the locus of innovation: Networks of learning in biotechnology[END_REF] argue for networks as the locus of innovation, through access to complementary competence and resources. 'Rather than using external relations as a temporary mechanism to compensate for capabilities a firm has not yet mastered, firms use collaborations to expand all their competencies' (Powell et al. 1994, p. 143). This study was performed based on a sample of more than 200 biotech firms, primarily from the US.

Other authors argue that inter-organizational collaboration might imply access to complementary assets, foster knowledge transfer and spreading R&D costs [START_REF] Faems | Interorganizational collaboration and innovation: Toward a portfolio approach[END_REF]. Studying 221 Belgian manufacturing firms Faems and colleagues (2005) find that the more firms engage in a variety of different inter-organizational collaborations, the more likely they are to create new or improved products that are commercially successful. Moreover, this study shows that collaboration with different types of partners coincides with different types of innovation outcomes.

Investigating eight in-depth case studies O' Connor (1998) finds that customers play an important role in providing input for incremental product development, but do not usually know the requirements for radically new products. She claims that conventional market research techniques focusing on product level problems, rather than application market level, may discourage major innovations. This is also in line with [START_REF] Christensen | The Innovator's Dilemma[END_REF], who argues that existing customers in general contribute with knowledge related to the existing product paradigm, but do not contribute with knowledge related to disruptive innovations. [START_REF] Connor | Customer-led and market-oriented: A matter of balance[END_REF] argues that information from the market and customer is important for various types of innovations to take place. Slater andNarver (1998, 1999) also recognize the importance of customer and market input, but emphasize the importance to distinguish between the two by stating that innovative firms need to be market-led rather than being customer-led. Being customer-led is, according to [START_REF] Slater | Market-oriented is more than being customerled[END_REF], to satisfy the buyers' expressed needs. Being market-led is to develop products with superior benefits, by trying to discover the customers' latent needs beyond what the customers are able to express and specify. Market-led companies, however, do not ignore the expressed needs of the existing customer base, but dedicate a considerable proportion of their activities on understanding the latent needs of the customers [START_REF] Slater | Market-oriented is more than being customerled[END_REF].

All of the above show that rather than depicting open innovation as a radically new idea, it is more appropriate to consider it as a phenomenon that has organically developed and matured over a considerable period of time. The concept of open innovation condenses, to the extent that it has recently started to generate quite some attention in both industry and academia, mostly triggered by [START_REF] Chesbrough | The logic of open innovation: managing intellectual property[END_REF] work. However, despite its popularity, the concept of open innovation is not coherently welldeveloped and operationalized in scientific terms, and the benefits have hardly been rigorously documented and tested empirically.

Considering the statement that open innovation is necessary for business survival, [START_REF] Chesbrough | The logic of open innovation: managing intellectual property[END_REF] implicitly suggests that internal and external involvement in innovation processes affects a firm's strategic outcomes. There is evidence, as outlined above, that internal and external collaboration may lead to improved performance or innovation outcome. However, there are weaknesses related to some of these studies considering sample size, industry representativeness, geographical selection, and so on. Further, we are not aware of studies that empirically investigate how the pattern of external and internal collaboration in NPD relates to the strategic priorities of firms. Insight into the link between strategic priorities, and external and internal collaboration would help researchers and managers to develop an understanding and knowledge about how to effectively manage and organize NPD efforts and innovation processes by designing effective internal and external relationships. The main purpose of this paper is to explore the relationships between opening up the NPD process to actors internal and external to the firm and their competitive strategy. We therefore investigate the following research questions:

RQ 1: How does firms' competitive strategy relate to collaboration with internal and external partners in the NPD process?

RQ 2: How do contingencies influence these relationships?

METHODS USED

DATA

To analyze the research question we use data from the International Manufacturing Strategy Survey (IMSS IV) database. The database consists of 711 companies in 23 countries representing a wide range of manufacturing and assembly industries . We removed outliers based on company size, which reduced the sample to 628 companies.

OPERATIONALISATION OF VARIABLES

STRATEGIC PRIORITIES

The responding companies' competitive strategy is operationalized in the questionnaire through the companies' order-winners, measured on five-point Likert-scales. We ask the respondents to indicate the current importance of 11 strategic priorities, ranging from 'Not important' (1) to 'Very important' (5). From these we focus on four priorities closely linked with innovation activity and strategy. These are 'superior product design and quality', 'wider product range', 'offer new products more frequently', and 'offer more innovative products'.

INVOLVEMENT

Furthermore, the questionnaire contains questions prompting the respondents to indicate to what extent the marketing and manufacturing departments, suppliers and customers are involved in the NPD process. The degree of involvement is measured on five-point Likert-scales, from 'no collaboration' to 'high collaboration'.

POSITION IN THE SUPPLY CHAIN

To investigate possible effects from the companies' position in the supply chain, we split the sample into two groups indicating whether the companies operate in business to business (B2B) or business to consumer (B2C) markets. Companies with a proportion of sales larger than 60 % to system integrators and finished products manufacturers are categorized as B2B (N = 234). Companies with a proportion of sales larger than 60 % to wholesalers/distributors and end users are categorized as B2C (N = 350). 44 companies could not be classified based on these criteria and were left out of the analyses.

CONTEXTUAL CONTINGENCIES

Company size was measured as number of employees in the plant. Market uncertainty was measured as the average value of one variable measuring market span and one variable measuring market dynamics, both by using five-point Likert-scales. Market span ranging from 'few segments' to 'many segments', market dynamics ranging from 'declining rapidly' to 'growing rapidly'. Before the merging of the variables these were transformed into three-point scales. For market span val-ues 1 and 2 were set to 1, the value 3 to 2, and the values 4 and 5 to 3. For market dynamics the values 1 and 5 were set to 3, the values 2 and 4 to 2, and the value 3 to 1, in order to capture the degree of change irrespective if this is decline or growth.

ANALYSES

We analyze the relationships between the variables using regression analyses, where the order-winners (representing a company's competitive strategy) are used as independent variables, and the degree of internal and external involvement is used as dependent variables. We also control for the direct and moderating influence of the two contextual factors, company size and market uncertainty. We did the analyses separate for B2B and B2C environments in order to capture the possible effects of this contingency.

RESULTS

B2B

For companies in B2B markets we find mixed and insignificant relationships between pursuing product design or wider product range as strategic priorities and the involvement of internal or external parties. Companies competing on launching new products frequently have a negative relationship with the involvement of suppliers (beta=-0,741, p<0,1), and negative and insignificant relationships with the other actors. For companies competing on launching more innovative products the reverse picture emerges. The relationships with involvement of suppliers and customers are positive (beta=0,723, p<0,05, and beta=0,586, p<0,1, respectively). The relationships with manufacturing and marketing involvement are positive but insignificant.

Considering the influence of contingencies we do not find company size or the degree of market uncertainty to have a significant direct influence on any of the collaboration parties, except for marketing involvement in highly uncertain markets (be-ta=0,751, p<0,1). These contingencies do not moderate the relationships between the strategic priorities product design and wider product range, and the involvement of internal and external parties in NPD, either. However, the relationship between frequent launch of new products and involvement of suppliers and customers are moderated positively by market uncertainty (beta=0,943, p<0,1, and beta=0,961, p<0,1, respectively). These findings indicate that companies with a strategic focus on launching new products frequently actively involve external parties in the NPD process when market uncertainty is high. Further, the relationship between launching more innovative products and involving suppliers is moderated negatively by company size (beta=-0,696, p<0,1), indicating that large companies involve their suppliers less in the NPD process when pursuing this strategic priority. The moderating effects from size on involving the other actors are negative but insignificant. The same pattern holds for the moderating effects of market uncertainty. Firms pursuing a strategy of more innovative products are less likely to involve suppliers in the NPD process in highly uncertain markets (beta=-0,954, p<0,1).

B2C

For B2C companies we do not find any significant relationships between product design strategy and the involvement of internal or external parties in the NPD process. Offering a wider product range has negative relationships with the involvement of suppliers and manufacturing (beta=-0,568, p<0,05, and beta=-0,461, p<0,1, respectively). Launching new products frequently has positive relationships with the involvement of suppliers, manufacturing and marketing in the NPD process (be-ta=0,504, p<0,1, beta=0,877, p<0,01 and beta=0,560, p<0,1,respectively). Launching more innovative products has a positive relationship with the involvement of marketing (beta=0,417, p<0,1).

Size and market uncertainty do not have significant direct relationships with the involvement of internal or external parties in NPD. Further, the relationships between product design strategy and involvement in NPD are not moderated significantly by size or market uncertainty. The relationship between wider product range and involvement of suppliers in NPD is moderated positively by company size (beta=0,490, p<0,1). Market uncertainty moderates the relationships between wider product range and the involvement of suppliers and manufacturing (beta=0,640, p<0,1, and be-ta=652, p<0,1, respectively). Market uncertainty negatively moderates the relationships between a strategy aimed at launching new products frequently and the involvement of suppliers and manufacturing (beta=-0,660, p<0,1, and beta=-1,166, p<0,01, respectively). The relationships between launching more innovative products and involvement of internal or external actors are not moderated by size or market uncertainty.

DISCUSSION

Companies competing on superior product design do not seem to have any particular degree of involvement of internal or external parties in the NPD process. This finding indicates that internal and external parties are involved to some extent in the NPD process, but to a varying degree and without a consistent pattern among the respondents. An explanation could be that some companies involve other actors actively, while others leave the responsibility to the NPD function to maintain the issue of product design.

In B2B markets we do not find any significant degree of involvement of external or internal actors in the NPD process for companies focusing on developing a wider product range, indicating that internal and external actors are to some extent involved in NPD but without any clear pattern. In B2C markets however, we find low involvement of suppliers and manufacturing. This finding indicates that the NPD function for broadening the product range takes place without involving these actors. An explanation for this could be that developing a wider product range is based on further exploitation of existing product platforms, and this is a task which primarily requires technical modifications of the existing portfolio. For such products, incoming parts and materials are most likely similar to the existing product portfolio, so close collaboration with suppliers should not be necessary. Similarly, manufacturing should be aware of the challenges of the manufacturability of the existing products, so there should be no strong needs to involve manufacturing actively.

Suppliers are to a very low degree involved in NPD by companies in B2B markets aiming at launching new products more frequently. The involvement of the other actors is also low, but these relationships are insignificant. These findings seem to suggest that the NPD function is responsible for increasing the volume of innovation and does not seek advice or competence in other internal functions or external actors, in particular so for suppliers. The reverse picture emerges for companies in B2C markets. Here we find a high involvement of all actors, except for customers. An explanation for this could be that companies search more broadly for new ideas to be able to develop new products on a regular basis. The marketing function could provide market information and market needs that NPD can transform into new products. Instead of involving the customers directly in the NPD process, which could be difficult in B2C markets if there are many customers, the marketing function may aggregate customers input to information useful for NPD. This could explain low direct customers involvement. Manufacturing could on the one hand suggest modifications on the existing product portfolio and through that contribute in the innovation process. On the other hand, manufacturing may have to be more involved when the volume of innovations increases, in order to ensure the manufacturability of the new products. Earlier research [START_REF] Laugen | New product development and manufacturing integrationa contingency approach[END_REF] suggests that the importance of involving manufacturing in the NPD process increases with the volume of new products launched, and that it becomes affordable to establish processes and organizational arrangements for this when higher volumes. Why we do not find a similar finding of manufacturing involvement for B2B markets is not clear.

In B2B markets suppliers and customers are heavily involved in NPD for companies focusing on launching more innovative products. This finding suggests that B2B companies search the expertise among external actors in order to develop more radically innovative products. This is at odds with some literature arguing that customers and suppliers generally are unable to provide input and knowledge about radical and disruptive new products [START_REF] Christensen | The Innovator's Dilemma[END_REF][START_REF] O'connor | Market learning and radical innovation: a cross case comparison of eight radical innovation projects[END_REF]. This issue will be discussed more thoroughly in section 4.2 below. In B2C markets, however, we only find a strong involvement of the marketing function. These findings seem to confirm the arguments of [START_REF] Christensen | The Innovator's Dilemma[END_REF][START_REF] O'connor | Market learning and radical innovation: a cross case comparison of eight radical innovation projects[END_REF], on the lack of contribution from suppliers and customers in radical innovations. The high involvement of the marketing function could indicate that market information is important for development of radical new products, but not the type coming from existing customers. The difficulties in sharing information between the two functions have been widely acknowledged in the NPD literature [START_REF] Brown | Product development: Past research, present findings, and future directions[END_REF][START_REF] Griffin | Patterns of communication among marketing, engineering and manufacturing -a comparison between two new product teams[END_REF][START_REF] Li | The impact of market knowledge competence on new product advantage: conceptualization and empirical examination[END_REF][START_REF] Song | Innovation strategy and the R&Dmarketing interface in japanese firms: A contingency perspective[END_REF]. Marketing and NPD usually have different objectives, and may thus value different forms of information (technological vs. market) in developing new products differently. Innovativeness, though, should enhance the firm's internal alignment between NPD and marketing. Innovativeness is based on a shared vision, support for new ideas, and risk taking behavior. Thus, innovativeness eliminates the cross-functional communication barriers and coordinates the activities of NPD and marketing [START_REF] Brown | Product development: Past research, present findings, and future directions[END_REF]. Our findings seem to confirm [START_REF] Brown | Product development: Past research, present findings, and future directions[END_REF], namely that marketing is actively involved in the NPD process when the aim is to develop more radically new products.

INTERACTION EFFECTS FROM CONTINGENCIES

The relationships between product design strategy and involvement do not seem to be moderated by company size or market uncertainty.

The same is the case for developing a wider product range strategy for companies in B2B markets. In B2C markets though, we find that larger companies involve suppliers to a higher extent in NPD than smaller firms. Companies pursuing a strategy for a wider product range also involve suppliers and manufacturing function actively when the market uncertainty is high. Growing markets and exposing the business to many segments could imply the need to producing higher volumes of both existing and new products. An explanation for involving suppliers more could be that the companies need stable deliveries of materials and components, and involving the suppliers in the NPD process could reduce the risk of unstable deliveries. Manufacturing would need to be involved to handle different products in manufacturing and maybe also because the production volume needs to be scaled up due to growing markets and larger market span.

In B2B markets, companies focusing on new products more frequently tend to involve suppliers and customers in the product development if there is high market uncertainty. For companies in B2C markets, however, the reverse picture emerges. Pursuing a strategy of launching new products more frequently is significantly negatively related to the involvement of suppliers in the NPD process, if high market un-certainty. The same is the case for involvement of manufacturing. These findings seem to suggest that there are considerable differences among B2B and B2C companies, in terms of how they involve internal and external parties in the NPD process.

In B2B markets, supplier involvement seems to have a negative relationship with more frequent launch of new products, while supplier involvement seems to be more important in uncertain markets. First mover advantage or short time-to-market becomes more important in uncertain markets and requires companies to increasingly involve their supply chain and suppliers in the launch of new products.

INVOLVEMENT IN NPD IN B2B VS. B2C MARKETS

According to literature, customer and supplier involvement is regarded more important in B2B than B2C markets [START_REF] Campbell | Do customer partnerships improve new product success rates?[END_REF][START_REF] Hartley | Managing the Buyer-Supplier Interface for On-Time Performance in Product Development[END_REF][START_REF] Ragatz | Benefits Associated with Supplier Integration into New Product Development under Conditions of Technology Uncertainty[END_REF]. Our findings seem partly to confirm existing theory. It seems to be the case for companies aiming at developing more innovative products, which could suggest that suppliers and customers could provide ideas for more radical products. Regarding suppliers this could be through providing new technological solutions which could lead to the development of radically new products. Customers could contribute to radically new ideas by providing information about new needs. Our finding is also in line with [START_REF] Rothwell | Towards the fifth-generation innovation process[END_REF], who argues that external alliances can reduce time and cost of radical product innovation projects. B2B market can be regarded as more professional markets than B2C, some customers can probably be regarded as lead users [START_REF] Von Hippel | The Sources of Innovation[END_REF]. [START_REF] Tessarolo | Is integration enough for fast product development? An empirical investigation of the contextual effects of product vision[END_REF] argues that firms in a B2B context, its suppliers, and its customers usually share a mainly cognitive and technical approach to the product -as opposed to the mainly perceptive perspective of the customer in a business-to-consumer context. Furthermore, each supply chain actor is technically qualified since it has its own development processes and can easily share what it knows and wants with the other entities (i.e., customers and suppliers) involved in the process. In other words, the type of information exchanged, which usually entails the exchange of e.g. CAD drawings or well-defined product metrics (e.g., technical specifications for the product or process, performance requirements), is easily understood by all three players, and the media used for the exchange (e.g., email, network-enabled electronic data interchange (EDI) systems, face-to-face meetings) are well established and familiar to all three players. [START_REF] Tessarolo | Is integration enough for fast product development? An empirical investigation of the contextual effects of product vision[END_REF]. In B2C markets, on the contrary, our findings suggest that external actors do not seem to be heavily involved in the NPD process when the companies aiming at developing radically new products. This is in line with much literature stating that suppliers and customers do not provide input suitable for developing radical type innovations (Christensen 1997, O 'Connor 1998).

However, customer and supplier involvement does not seem to be important for B2B companies aiming at developing new products more frequently. This finding, thus, is at odds with the existing literature [START_REF] Campbell | Do customer partnerships improve new product success rates?[END_REF][START_REF] Hartley | Managing the Buyer-Supplier Interface for On-Time Performance in Product Development[END_REF][START_REF] Ragatz | Benefits Associated with Supplier Integration into New Product Development under Conditions of Technology Uncertainty[END_REF]. Although, when companies in B2B markets aiming at developing new products more frequently in markets with high market uncertainty they tend to rely on the involvement of suppliers and customers. So, our findings refine the literature regarding involvement of external actors in the NPD process for companies in B2B and B2C markets, by adding the element of strategy as a determining factor, as well as market uncertainty and size as a moderating variable.

CONCLUSION

CONTRIBUTION

The paper contributes to refining current contributions on open innovation by providing empirical evidence of how collaboration in the NPD process relates to the strategic order-winners of firms. Supplier involvement appears to be negatively related to the frequency of launch of new products as an order winner in B2B markets, while involving suppliers is positive in B2C markets. However, in markets with high uncertainty the reverse picture emerges for both B2B and B2C companies. Firms aiming at developing more innovative products involve external actors actively in the NPD process in B2B markets. These relationships are moderated negatively in markets with high uncertainty.

In B2C markets the marketing function is heavily involved for companies aiming at developing new products more frequently or more innovative products. Manufacturing involvement is considered negative to develop a wider product range, while positive for developing more new products. In B2B markets, we find no clear pattern on the internal involvement in NPD.

The findings raise interesting questions as to when and where the use of open innovation is appropriate; a discussion of these questions which will facilitate a much needed detailing of the open innovation proposition.

MANAGERIAL LESSONS

The findings in this paper lead to a set of suggestions for managers. First, the degree of internal and external involvement in NPD depends largely on the firms' strategic priorities. If the aim is to increase the volume of development of new products, or if the aim is to increase the innovativeness of the products, companies should choose two different paths in selecting what actors to involve in NPD. Further, depending on the position in the supply chain, B2B or B2C, the degree of involvement differs considerably between the strategic priorities. Finally, market uncertainty is an important moderating factor for the relationships between strategies and involvement and must be taken into consideration by managers when dealing with these issues.

LIMITATIONS AND FURTHER RESEARCH

In this paper we investigate a set of innovation-related strategic priorities, and investigate the relationships with involvement of internal and external actors in the NPD process. Although the innovation-related strategy measures are relevant, there are of course several other strategic priorities that might influence the choice of in-volvement in NPD. There are reasons to believe that both external and internal actors can be involved in order to reduce cost and development time, and to increase the firms' quality and flexibility. Further investigation into how a broader set of strategic priorities relate to involvement in NPD could reveal this.

Further, we investigated the involvement of manufacturing and marketing, and suppliers and customers. These actors are in the literature considered to be highly important to involve in the NPD process, but there are other both internal and external actors that could be taken into account.

We investigated the direct and indirect influence of size and market uncertainty on the relationships between strategic priorities and involvement, in addition to the separate analyses for B2B and B2C markets. Other contingencies, such as innovativeness, industry type and production process, could contribute to an increased understanding of the relationships.

REFERENCE

Table 1 :

 1 Results of the regression analyses. The standardized coefficients (beta) are reported.

						Sig. level: * = p < 0,1, ** = p < 0,05, *** = p < 0,01
		B2B (N = 234)				B2C (N = 350)
		Suppliers Manufacturing Marketing Customers Suppliers Manufacturing Marketing Customers
	(Constant)				**	**	***		***
	Product design	-,060	,127	,211	,104	-,004	-,325	,081	-,163
	Product range	,293	,084	,424	-,221	-,568**	-,461*	-,246	-,006
	New products more frequently	-,741*	-,368	-,186	-,626	,504*	,877***	,560*	,118
	More innovative products	,723**	,452	,389	,586*	,016	,170	,417*	,007
	Company size	,643	,364	,285	-,132	-,400	,001	,417	,091
	Market uncertainty	,017	,312	,751*	,210	-,063	,008	,408	-,360
	Product design * Size	-,630	-,166	,324	,321	,209	,182	,304	,206
	Product design * Uncertainty	,584	-,031	-,412	-,274	,049	,499	-,096	,408
	Product range * Size	,230	,006	-,236	,084	,490*	-,012	-,135	-,456
	Product range * Uncertainty	-,511	-,004	-,378	,103	,640*	,652*	,392	,246
	New products more frequently * Size	,541	,211	-,181	-,289	-,399	,075	-,314	-,100
	New products more frequently * Uncertainty	,943*	,386	,394	,961*	-,660*	-1,166***	-,496	-,290
	More innovative products * Size	-,696*	-,381	-,192	-,023	,232	-,256	-,275	,168
	More innovative products * Uncer-tainty	-,954*	-,560	-,384	-,609	,108	-,173	-,369	,049
	r 2	0,099	0,058	0,121	0,126	0,067	0,044	0,108	0,036
	Sig.	0,106	0,603	0,030	0,020	0,078	0,427	0,001	0,630
	adfa, p. 6, 2011.
	© Springer-Verlag Berlin Heidelberg 2011