/********************************************************************/
/* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
// BLUMOV MOVES A LINE B-REP AS SPECIFIED IN KT. 
// *** INPUT * 
//       K,N,T(N+K),RCOEFI(IRCI,NCD),IRCI,NCD....DESCRIBE B-REP INPUT 
//             K:ORDER,     NCD:SPACE DIMENSIONN,   N:B-REP DIMENSION 
//                T(N+K):KNOT VECTOR,  RCOEFI(.,.): B-COEFFICIENTS 
//       TC...IS THE CENTER OF TRANSLATION, PARAMETER VALUE OF THE B-REP
//       P(NCD).....IS THE NEW POINT COORDINATE, 
//                THE POINT F(TC) IS MOVED TO P(.), WHERE F IS B-REP 
//       KT.....INDICATES WHAT KIND OF MOVE IS BEING PERFORMED. 
//          =1 : TWO END POINTS FIXED AND CENTER OF MOVE BETWEEN THEM. 
//          =2 : ONE POINT,TFI(1),FIXED. THE OTHER POINT IS FREE 
//          =3 : TWO POINTS,TFI(.),FIXED AND CENTER OF MOVE BETWN THEM. 
//          =4 : NO FIXED POINT SPECIFIED, MINIMUM MOVE 
//          =5 : PARALLEL TRANSLATION OF THE LINE 
//       TFI(2)....SPECIFIES PARAMETER VALUES OF B-REP TO FIX AT. 
//          WHEN KT=2, TFI(2) IS DUMMY. 
//          WHEN KT=1, 4 AND 5, TFI(.) ARE DUMMY. 
//       IRC.....ROW DIMENSIONS OF THE VARIABLES RCOEF 
// *** OUTPUT * 
//       RCOEF(IRC,NCD).....ARE NEW TRANSLATED B-COEF'S. 
//          RCOEF MAY BE THE SAME AREA AS RCOEFI 
//       TFO(2).....ARE PARAMETER VALUES OF THE B-REP, GIVES TWO 
//          BOUNDARY POINTS OF THE MOVE. I.E., MOVE IS PERFORMED IN 
//          TFO(1) < T < TFO(2). 
// ***WORK* 
//       WRATIO(N)...WORK AREA OF LENGTH N. 
void blumov_(int k, int n, const double *t, 
	const double *rcoefi, int irci, int ncd, double tc, 
	const double *p, int kt,const double *tfi, int irc, double *wratio,
	double *rcoef, double *tfo);
