Lines Matching refs:pt
88 static int addpart(Part_t* pt, Void_t* data, size_t size, ssize_t* freq)
90 static int addpart(pt, data, size, freq)
91 Part_t* pt;
100 vchcopy(pt->vch, freq, NIL(ssize_t*), 0);
101 if((sz = vcapply(pt->vch, data, size, &buf)) <= 0)
103 vcioputu(pt->io, sz);
104 vcioputs(pt->io, buf, sz);
110 static int part(Part_t* pt, Vcchar_t* data, size_t size, ssize_t* rfreq, double re)
112 static int part(pt, data, size, pos, rfreq, re)
113 Part_t* pt; /* partition handle */
125 cost = pt->ctab + size*vclog(size) - re;
130 return addpart(pt, data, size, rfreq);
147 lc = pt->ctab + p*vclog(p) - le;
148 rc = pt->ctab + (size-p)*vclog(size-p) - re;
151 if(part(pt, data, p, lfreq, le) < 0 )
153 if(part(pt, data+p, size-p, rfreq, re) < 0)
160 return addpart(pt, data, size, rfreq);
177 Part_t *pt = vcgetmtdata(vc, Part_t*);
189 pt->ctab = c*PT_NBIT + (VCH_SIZE-c)*PT_NONE;
196 pt->io = &io;
201 if(part(pt, (Vcchar_t*)data, size, freq, e) < 0)
204 pt->io = NIL(Vcio_t*);
212 vcbuffer(pt->vch, NIL(Vcchar_t*), -1, -1);
233 Part_t *pt = vcgetmtdata(vc, Part_t*);
261 if((s = vcapply(pt->vch, dt, n, &dt)) <= 0)
273 vcbuffer(pt->vch, NIL(Vcchar_t*), -1, -1);
292 Part_t *pt;
295 { if(!(pt = (Part_t*)malloc(sizeof(Part_t))) )
299 if(!(pt->vch = vcopen(NIL(Vcdisc_t*), Vchuffman, 0, 0, vc->flags)) )
300 { free(pt);
304 pt->ctab = 0;
305 pt->io = NIL(Vcio_t*);
307 vcsetmtdata(vc, pt);
311 { if((pt = vcgetmtdata(vc, Part_t*)) )
312 { if(pt->vch)
313 vcclose(pt->vch);
314 free(pt);
320 { if((pt = vcgetmtdata(vc, Part_t*)) && pt->vch)
321 vcbuffer(pt->vch, NIL(Vcchar_t*), -1, -1);