ops.c

来自「牛顿插值方法求解多项式的系数」· C语言 代码 · 共 61 行

C
61
字号
/* * (c) Copyright 1992, 1993 by Panagiotis Tsirigotis * All rights reserved.  The file named COPYRIGHT specifies the terms  * and conditions for redistribution. */#include "config.h"#include "pset.h"#include <stdlib.h>#define POINTER				__pset_pointer/* * Remove all NULL pointers from a pset */void pset_compact( register pset_h pset ){	register unsigned u ;	for ( u = 0 ; u < pset_count( pset ) ; )	{		POINTER ptr = pset_pointer( pset, u );		if ( ptr != NULL )			u++ ;		else			pset_delete( pset, ptr ) ;	}	/* See if we can reclaim some memory, make sure we are 2 below for some hysteresis */	if ((int)( pset->max - pset->alloc_step - 2) > (int)pset_count( pset ))	{	/* This rounds up to the next unit of steps */		POINTER *new_ptrs ;		unsigned new_max = ((pset_count( pset ) / pset->alloc_step) + 1)*pset->alloc_step;		new_ptrs = (POINTER *) realloc(								(char *)pset->ptrs, new_max * sizeof( POINTER ) ) ;		if ( new_ptrs == NULL )			return;		pset->max = new_max ;		pset->ptrs = new_ptrs ;	}}/* * Apply a function to all pointers of a pset */void pset_apply( register pset_h pset, void (*func)(), register void *arg ){	register unsigned u ;	for ( u = 0 ; u < pset_count( pset ) ; u++ )		if ( arg )			(*func)( arg, pset_pointer( pset, u ) ) ;		else			(*func)( pset_pointer( pset, u ) ) ;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?