[DRE-commits] [ruby-lapack] 01/05: Imported Upstream version 1.7.1

Youhei SASAKI uwabami-guest at moszumanska.debian.org
Thu Jul 23 02:15:43 UTC 2015


This is an automated email from the git hooks/post-receive script.

uwabami-guest pushed a commit to annotated tag debian/1.7.1-1
in repository ruby-lapack.

commit 3ef230fc269cb3ce3346121144f37bcd771d72b9
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Thu Jul 23 10:56:32 2015 +0900

    Imported Upstream version 1.7.1
---
 Rakefile                  |    2 +-
 dev/make_csrc.rb          |   10 +-
 ext/cbbcsd.c              |   26 +-
 ext/cbdsqr.c              |   10 +-
 ext/cgbbrd.c              |   12 +-
 ext/cgbequ.c              |    4 +-
 ext/cgbequb.c             |    4 +-
 ext/cgbrfs.c              |    6 +-
 ext/cgbrfsx.c             |   14 +-
 ext/cgbsv.c               |    6 +-
 ext/cgbsvx.c              |   20 +-
 ext/cgbsvxx.c             |   22 +-
 ext/cgbtf2.c              |    4 +-
 ext/cgbtrf.c              |    4 +-
 ext/cgbtrs.c              |    2 +-
 ext/cgebak.c              |    2 +-
 ext/cgebal.c              |    4 +-
 ext/cgebd2.c              |   10 +-
 ext/cgebrd.c              |   12 +-
 ext/cgeequ.c              |    4 +-
 ext/cgeequb.c             |    4 +-
 ext/cgees.c               |    8 +-
 ext/cgeesx.c              |    8 +-
 ext/cgeev.c               |   10 +-
 ext/cgeevx.c              |   16 +-
 ext/cgegs.c               |   14 +-
 ext/cgegv.c               |   16 +-
 ext/cgehd2.c              |    4 +-
 ext/cgehrd.c              |    6 +-
 ext/cgelq2.c              |    4 +-
 ext/cgelqf.c              |    6 +-
 ext/cgels.c               |    6 +-
 ext/cgelsd.c              |    6 +-
 ext/cgelss.c              |    8 +-
 ext/cgelsx.c              |    6 +-
 ext/cgelsy.c              |    8 +-
 ext/cgeql2.c              |    4 +-
 ext/cgeqlf.c              |    6 +-
 ext/cgeqp3.c              |    8 +-
 ext/cgeqpf.c              |    6 +-
 ext/cgeqr2.c              |    4 +-
 ext/cgeqr2p.c             |    4 +-
 ext/cgeqrf.c              |    6 +-
 ext/cgeqrfp.c             |    6 +-
 ext/cgerfs.c              |    6 +-
 ext/cgerfsx.c             |   10 +-
 ext/cgerq2.c              |    4 +-
 ext/cgerqf.c              |    6 +-
 ext/cgesc2.c              |    2 +-
 ext/cgesdd.c              |   10 +-
 ext/cgesv.c               |    6 +-
 ext/cgesvd.c              |   10 +-
 ext/cgesvx.c              |   20 +-
 ext/cgesvxx.c             |   22 +-
 ext/cgetc2.c              |    6 +-
 ext/cgetf2.c              |    4 +-
 ext/cgetrf.c              |    4 +-
 ext/cgetri.c              |    4 +-
 ext/cgetrs.c              |    2 +-
 ext/cggbak.c              |    2 +-
 ext/cggbal.c              |    8 +-
 ext/cgges.c               |   14 +-
 ext/cggesx.c              |   20 +-
 ext/cggev.c               |   16 +-
 ext/cggevx.c              |   22 +-
 ext/cggglm.c              |   12 +-
 ext/cgghrd.c              |    8 +-
 ext/cgglse.c              |   12 +-
 ext/cggqrf.c              |   10 +-
 ext/cggrqf.c              |   10 +-
 ext/cggsvd.c              |   16 +-
 ext/cggsvp.c              |   10 +-
 ext/cgtrfs.c              |    6 +-
 ext/cgtsv.c               |    8 +-
 ext/cgtsvx.c              |   16 +-
 ext/cgttrf.c              |   10 +-
 ext/cgttrs.c              |    2 +-
 ext/cgtts2.c              |    2 +-
 ext/chbev.c               |    6 +-
 ext/chbevd.c              |   12 +-
 ext/chbevx.c              |   10 +-
 ext/chbgst.c              |    4 +-
 ext/chbgv.c               |    8 +-
 ext/chbgvd.c              |   14 +-
 ext/chbgvx.c              |   12 +-
 ext/chbtrd.c              |    8 +-
 ext/cheequb.c             |    2 +-
 ext/cheev.c               |    6 +-
 ext/cheevd.c              |   10 +-
 ext/cheevr.c              |   14 +-
 ext/cheevx.c              |   10 +-
 ext/chegs2.c              |    2 +-
 ext/chegst.c              |    2 +-
 ext/chegv.c               |    8 +-
 ext/chegvd.c              |   12 +-
 ext/chegvx.c              |   12 +-
 ext/cherfs.c              |    6 +-
 ext/cherfsx.c             |   12 +-
 ext/chesv.c               |    8 +-
 ext/chesvx.c              |   12 +-
 ext/chesvxx.c             |   20 +-
 ext/chetd2.c              |    8 +-
 ext/chetf2.c              |    4 +-
 ext/chetrd.c              |   10 +-
 ext/chetrf.c              |    6 +-
 ext/chetri.c              |    2 +-
 ext/chetrs.c              |    2 +-
 ext/chetrs2.c             |    2 +-
 ext/chfrk.c               |    2 +-
 ext/chgeqz.c              |   14 +-
 ext/chpev.c               |    6 +-
 ext/chpevd.c              |   12 +-
 ext/chpevx.c              |    8 +-
 ext/chpgst.c              |    2 +-
 ext/chpgv.c               |    8 +-
 ext/chpgvd.c              |   10 +-
 ext/chpgvx.c              |   10 +-
 ext/chprfs.c              |    6 +-
 ext/chpsv.c               |    6 +-
 ext/chpsvx.c              |   10 +-
 ext/chptrd.c              |    8 +-
 ext/chptrf.c              |    4 +-
 ext/chptri.c              |    2 +-
 ext/chptrs.c              |    2 +-
 ext/chsein.c              |   10 +-
 ext/chseqr.c              |    8 +-
 ext/cla_gbamv.c           |    2 +-
 ext/cla_gbrfsx_extended.c |    8 +-
 ext/cla_geamv.c           |    2 +-
 ext/cla_gerfsx_extended.c |    8 +-
 ext/cla_heamv.c           |    2 +-
 ext/cla_herfsx_extended.c |    8 +-
 ext/cla_lin_berr.c        |    2 +-
 ext/cla_porfsx_extended.c |    8 +-
 ext/cla_syamv.c           |    2 +-
 ext/cla_syrfsx_extended.c |    8 +-
 ext/cla_wwaddw.c          |    4 +-
 ext/clabrd.c              |   14 +-
 ext/clacgv.c              |    2 +-
 ext/clacn2.c              |    4 +-
 ext/clacon.c              |    2 +-
 ext/clacp2.c              |    2 +-
 ext/clacpy.c              |    2 +-
 ext/clacrm.c              |    2 +-
 ext/clacrt.c              |    4 +-
 ext/claed0.c              |    6 +-
 ext/claed7.c              |   10 +-
 ext/claed8.c              |   16 +-
 ext/claein.c              |    2 +-
 ext/clag2z.c              |    2 +-
 ext/clagtm.c              |    2 +-
 ext/clahef.c              |    4 +-
 ext/clahqr.c              |    6 +-
 ext/clahr2.c              |    8 +-
 ext/clahrd.c              |    8 +-
 ext/clals0.c              |    2 +-
 ext/clalsa.c              |    4 +-
 ext/clalsd.c              |    6 +-
 ext/clapll.c              |    4 +-
 ext/clapmr.c              |    4 +-
 ext/clapmt.c              |    4 +-
 ext/claqgb.c              |    2 +-
 ext/claqge.c              |    2 +-
 ext/claqhb.c              |    4 +-
 ext/claqhe.c              |    2 +-
 ext/claqhp.c              |    2 +-
 ext/claqp2.c              |   10 +-
 ext/claqps.c              |   14 +-
 ext/claqr0.c              |    8 +-
 ext/claqr1.c              |    2 +-
 ext/claqr2.c              |    6 +-
 ext/claqr3.c              |    6 +-
 ext/claqr4.c              |    8 +-
 ext/claqr5.c              |    6 +-
 ext/claqsb.c              |    2 +-
 ext/claqsp.c              |    2 +-
 ext/claqsy.c              |    2 +-
 ext/clar1v.c              |    4 +-
 ext/clar2v.c              |    6 +-
 ext/clarcm.c              |    2 +-
 ext/clarf.c               |    2 +-
 ext/clarfb.c              |    2 +-
 ext/clarfg.c              |    2 +-
 ext/clarfgp.c             |    2 +-
 ext/clarft.c              |    4 +-
 ext/clarfx.c              |    2 +-
 ext/clargv.c              |    6 +-
 ext/clarnv.c              |    4 +-
 ext/clarrv.c              |   14 +-
 ext/clarscl2.c            |    2 +-
 ext/clartv.c              |    4 +-
 ext/clarz.c               |    2 +-
 ext/clarzb.c              |    2 +-
 ext/clarzt.c              |    4 +-
 ext/clascl.c              |    2 +-
 ext/clascl2.c             |    2 +-
 ext/claset.c              |    2 +-
 ext/clasr.c               |    2 +-
 ext/claswp.c              |    2 +-
 ext/clasyf.c              |    4 +-
 ext/clatbs.c              |    4 +-
 ext/clatdf.c              |    2 +-
 ext/clatps.c              |    4 +-
 ext/clatrd.c              |    8 +-
 ext/clatrs.c              |    4 +-
 ext/clatrz.c              |    4 +-
 ext/clatzm.c              |    4 +-
 ext/clauu2.c              |    2 +-
 ext/clauum.c              |    2 +-
 ext/cpbequ.c              |    2 +-
 ext/cpbrfs.c              |    6 +-
 ext/cpbstf.c              |    2 +-
 ext/cpbsv.c               |    4 +-
 ext/cpbsvx.c              |   14 +-
 ext/cpbtf2.c              |    2 +-
 ext/cpbtrf.c              |    2 +-
 ext/cpbtrs.c              |    2 +-
 ext/cpftrf.c              |    2 +-
 ext/cpftri.c              |    2 +-
 ext/cpftrs.c              |    2 +-
 ext/cpoequ.c              |    2 +-
 ext/cpoequb.c             |    2 +-
 ext/cporfs.c              |    6 +-
 ext/cporfsx.c             |   12 +-
 ext/cposv.c               |    4 +-
 ext/cposvx.c              |   14 +-
 ext/cposvxx.c             |   18 +-
 ext/cpotf2.c              |    2 +-
 ext/cpotrf.c              |    2 +-
 ext/cpotri.c              |    2 +-
 ext/cpotrs.c              |    2 +-
 ext/cppequ.c              |    2 +-
 ext/cpprfs.c              |    6 +-
 ext/cppsv.c               |    4 +-
 ext/cppsvx.c              |   14 +-
 ext/cpptrf.c              |    2 +-
 ext/cpptri.c              |    2 +-
 ext/cpptrs.c              |    2 +-
 ext/cpstf2.c              |    4 +-
 ext/cpstrf.c              |    4 +-
 ext/cpteqr.c              |    6 +-
 ext/cptrfs.c              |    6 +-
 ext/cptsv.c               |    6 +-
 ext/cptsvx.c              |   10 +-
 ext/cpttrf.c              |    4 +-
 ext/cpttrs.c              |    2 +-
 ext/cptts2.c              |    2 +-
 ext/crot.c                |    4 +-
 ext/cspmv.c               |    2 +-
 ext/cspr.c                |    2 +-
 ext/csprfs.c              |    6 +-
 ext/cspsv.c               |    6 +-
 ext/cspsvx.c              |   10 +-
 ext/csptrf.c              |    4 +-
 ext/csptri.c              |    2 +-
 ext/csptrs.c              |    2 +-
 ext/csrscl.c              |    2 +-
 ext/cstedc.c              |   12 +-
 ext/cstegr.c              |   14 +-
 ext/cstein.c              |    4 +-
 ext/cstemr.c              |   14 +-
 ext/csteqr.c              |    6 +-
 ext/csyequb.c             |    2 +-
 ext/csymv.c               |    2 +-
 ext/csyr.c                |    2 +-
 ext/csyrfs.c              |    6 +-
 ext/csyrfsx.c             |   12 +-
 ext/csysv.c               |    8 +-
 ext/csysvx.c              |   12 +-
 ext/csysvxx.c             |   20 +-
 ext/csyswapr.c            |    2 +-
 ext/csytf2.c              |    4 +-
 ext/csytrf.c              |    6 +-
 ext/csytri.c              |    2 +-
 ext/csytri2.c             |    2 +-
 ext/csytri2x.c            |    2 +-
 ext/csytrs.c              |    2 +-
 ext/csytrs2.c             |    2 +-
 ext/ctbrfs.c              |    4 +-
 ext/ctbtrs.c              |    2 +-
 ext/ctfsm.c               |    2 +-
 ext/ctftri.c              |    2 +-
 ext/ctfttp.c              |    2 +-
 ext/ctfttr.c              |    2 +-
 ext/ctgevc.c              |    4 +-
 ext/ctgex2.c              |    8 +-
 ext/ctgexc.c              |    8 +-
 ext/ctgsen.c              |   18 +-
 ext/ctgsja.c              |   14 +-
 ext/ctgsna.c              |    6 +-
 ext/ctgsy2.c              |    4 +-
 ext/ctgsyl.c              |    6 +-
 ext/ctprfs.c              |    4 +-
 ext/ctptri.c              |    2 +-
 ext/ctptrs.c              |    2 +-
 ext/ctpttf.c              |    2 +-
 ext/ctpttr.c              |    2 +-
 ext/ctrevc.c              |    6 +-
 ext/ctrexc.c              |    4 +-
 ext/ctrrfs.c              |    4 +-
 ext/ctrsen.c              |    8 +-
 ext/ctrsna.c              |    4 +-
 ext/ctrsyl.c              |    2 +-
 ext/ctrti2.c              |    2 +-
 ext/ctrtri.c              |    2 +-
 ext/ctrtrs.c              |    2 +-
 ext/ctrttf.c              |    2 +-
 ext/ctrttp.c              |    2 +-
 ext/ctzrqf.c              |    4 +-
 ext/ctzrzf.c              |    6 +-
 ext/cunbdb.c              |   20 +-
 ext/cuncsd.c              |   10 +-
 ext/cung2l.c              |    2 +-
 ext/cung2r.c              |    2 +-
 ext/cungbr.c              |    4 +-
 ext/cunghr.c              |    4 +-
 ext/cungl2.c              |    2 +-
 ext/cunglq.c              |    4 +-
 ext/cungql.c              |    4 +-
 ext/cungqr.c              |    4 +-
 ext/cungr2.c              |    2 +-
 ext/cungrq.c              |    4 +-
 ext/cungtr.c              |    4 +-
 ext/cunm2l.c              |    2 +-
 ext/cunm2r.c              |    2 +-
 ext/cunmbr.c              |    4 +-
 ext/cunmhr.c              |    4 +-
 ext/cunml2.c              |    2 +-
 ext/cunmlq.c              |    4 +-
 ext/cunmql.c              |    4 +-
 ext/cunmqr.c              |    4 +-
 ext/cunmr2.c              |    2 +-
 ext/cunmr3.c              |    2 +-
 ext/cunmrq.c              |    4 +-
 ext/cunmrz.c              |    4 +-
 ext/cunmtr.c              |    4 +-
 ext/cupgtr.c              |    2 +-
 ext/cupmtr.c              |    2 +-
 ext/dbbcsd.c              |   26 +-
 ext/dbdsdc.c              |   12 +-
 ext/dbdsqr.c              |   10 +-
 ext/ddisna.c              |    2 +-
 ext/dgbbrd.c              |   12 +-
 ext/dgbequ.c              |    4 +-
 ext/dgbequb.c             |    4 +-
 ext/dgbrfs.c              |    6 +-
 ext/dgbrfsx.c             |   14 +-
 ext/dgbsv.c               |    6 +-
 ext/dgbsvx.c              |   20 +-
 ext/dgbsvxx.c             |   22 +-
 ext/dgbtf2.c              |    4 +-
 ext/dgbtrf.c              |    4 +-
 ext/dgbtrs.c              |    2 +-
 ext/dgebak.c              |    2 +-
 ext/dgebal.c              |    4 +-
 ext/dgebd2.c              |   10 +-
 ext/dgebrd.c              |   12 +-
 ext/dgeequ.c              |    4 +-
 ext/dgeequb.c             |    4 +-
 ext/dgees.c               |   10 +-
 ext/dgeesx.c              |   12 +-
 ext/dgeev.c               |   12 +-
 ext/dgeevx.c              |   18 +-
 ext/dgegs.c               |   16 +-
 ext/dgegv.c               |   16 +-
 ext/dgehd2.c              |    4 +-
 ext/dgehrd.c              |    6 +-
 ext/dgejsv.c              |   10 +-
 ext/dgelq2.c              |    4 +-
 ext/dgelqf.c              |    6 +-
 ext/dgels.c               |    6 +-
 ext/dgelsd.c              |    6 +-
 ext/dgelss.c              |    8 +-
 ext/dgelsx.c              |    6 +-
 ext/dgelsy.c              |    8 +-
 ext/dgeql2.c              |    4 +-
 ext/dgeqlf.c              |    6 +-
 ext/dgeqp3.c              |    8 +-
 ext/dgeqpf.c              |    6 +-
 ext/dgeqr2.c              |    4 +-
 ext/dgeqr2p.c             |    4 +-
 ext/dgeqrf.c              |    6 +-
 ext/dgeqrfp.c             |    6 +-
 ext/dgerfs.c              |    6 +-
 ext/dgerfsx.c             |   10 +-
 ext/dgerq2.c              |    4 +-
 ext/dgerqf.c              |    6 +-
 ext/dgesc2.c              |    2 +-
 ext/dgesdd.c              |   10 +-
 ext/dgesv.c               |    6 +-
 ext/dgesvd.c              |   10 +-
 ext/dgesvj.c              |    8 +-
 ext/dgesvx.c              |   20 +-
 ext/dgesvxx.c             |   22 +-
 ext/dgetc2.c              |    6 +-
 ext/dgetf2.c              |    4 +-
 ext/dgetrf.c              |    4 +-
 ext/dgetri.c              |    4 +-
 ext/dgetrs.c              |    2 +-
 ext/dggbak.c              |    2 +-
 ext/dggbal.c              |    8 +-
 ext/dgges.c               |   16 +-
 ext/dggesx.c              |   20 +-
 ext/dggev.c               |   16 +-
 ext/dggevx.c              |   24 +-
 ext/dggglm.c              |   12 +-
 ext/dgghrd.c              |    8 +-
 ext/dgglse.c              |   12 +-
 ext/dggqrf.c              |   10 +-
 ext/dggrqf.c              |   10 +-
 ext/dggsvd.c              |   16 +-
 ext/dggsvp.c              |   10 +-
 ext/dgsvj0.c              |    8 +-
 ext/dgsvj1.c              |    8 +-
 ext/dgtrfs.c              |    6 +-
 ext/dgtsv.c               |    8 +-
 ext/dgtsvx.c              |   16 +-
 ext/dgttrf.c              |   10 +-
 ext/dgttrs.c              |    2 +-
 ext/dgtts2.c              |    2 +-
 ext/dhgeqz.c              |   16 +-
 ext/dhsein.c              |   12 +-
 ext/dhseqr.c              |   10 +-
 ext/dla_gbamv.c           |    2 +-
 ext/dla_gbrfsx_extended.c |    8 +-
 ext/dla_geamv.c           |    2 +-
 ext/dla_gerfsx_extended.c |    8 +-
 ext/dla_lin_berr.c        |    2 +-
 ext/dla_porfsx_extended.c |    8 +-
 ext/dla_syamv.c           |    2 +-
 ext/dla_syrfsx_extended.c |    8 +-
 ext/dla_wwaddw.c          |    4 +-
 ext/dlabrd.c              |   14 +-
 ext/dlacn2.c              |    4 +-
 ext/dlacon.c              |    2 +-
 ext/dlacpy.c              |    2 +-
 ext/dlaebz.c              |    8 +-
 ext/dlaed0.c              |    4 +-
 ext/dlaed1.c              |    6 +-
 ext/dlaed2.c              |   16 +-
 ext/dlaed3.c              |    8 +-
 ext/dlaed4.c              |    2 +-
 ext/dlaed5.c              |    2 +-
 ext/dlaed7.c              |   10 +-
 ext/dlaed8.c              |   16 +-
 ext/dlaed9.c              |    4 +-
 ext/dlaeda.c              |    2 +-
 ext/dlaein.c              |    4 +-
 ext/dlaexc.c              |    4 +-
 ext/dlag2s.c              |    2 +-
 ext/dlagtf.c              |   10 +-
 ext/dlagtm.c              |    2 +-
 ext/dlagts.c              |    2 +-
 ext/dlagv2.c              |   10 +-
 ext/dlahqr.c              |    8 +-
 ext/dlahr2.c              |    8 +-
 ext/dlahrd.c              |    8 +-
 ext/dlaln2.c              |    2 +-
 ext/dlals0.c              |    2 +-
 ext/dlalsa.c              |    4 +-
 ext/dlalsd.c              |    6 +-
 ext/dlamrg.c              |    2 +-
 ext/dlapll.c              |    4 +-
 ext/dlapmr.c              |    4 +-
 ext/dlapmt.c              |    4 +-
 ext/dlaqgb.c              |    2 +-
 ext/dlaqge.c              |    2 +-
 ext/dlaqp2.c              |   10 +-
 ext/dlaqps.c              |   14 +-
 ext/dlaqr0.c              |   10 +-
 ext/dlaqr1.c              |    2 +-
 ext/dlaqr2.c              |    8 +-
 ext/dlaqr3.c              |    8 +-
 ext/dlaqr4.c              |   10 +-
 ext/dlaqr5.c              |    8 +-
 ext/dlaqsb.c              |    2 +-
 ext/dlaqsp.c              |    2 +-
 ext/dlaqsy.c              |    2 +-
 ext/dlaqtr.c              |    2 +-
 ext/dlar1v.c              |    4 +-
 ext/dlar2v.c              |    6 +-
 ext/dlarf.c               |    2 +-
 ext/dlarfb.c              |    2 +-
 ext/dlarfg.c              |    2 +-
 ext/dlarfgp.c             |    2 +-
 ext/dlarft.c              |    4 +-
 ext/dlarfx.c              |    2 +-
 ext/dlargv.c              |    6 +-
 ext/dlarnv.c              |    4 +-
 ext/dlarra.c              |    6 +-
 ext/dlarrb.c              |    6 +-
 ext/dlarrd.c              |    8 +-
 ext/dlarre.c              |   20 +-
 ext/dlarrf.c              |    6 +-
 ext/dlarrj.c              |    4 +-
 ext/dlarrr.c              |    2 +-
 ext/dlarrv.c              |   14 +-
 ext/dlarscl2.c            |    2 +-
 ext/dlartv.c              |    4 +-
 ext/dlaruv.c              |    4 +-
 ext/dlarz.c               |    2 +-
 ext/dlarzb.c              |    2 +-
 ext/dlarzt.c              |    4 +-
 ext/dlascl.c              |    2 +-
 ext/dlascl2.c             |    2 +-
 ext/dlasd0.c              |    6 +-
 ext/dlasd1.c              |    8 +-
 ext/dlasd2.c              |   20 +-
 ext/dlasd3.c              |   10 +-
 ext/dlasd4.c              |    2 +-
 ext/dlasd5.c              |    2 +-
 ext/dlasd6.c              |   22 +-
 ext/dlasd7.c              |   16 +-
 ext/dlasd8.c              |   14 +-
 ext/dlasda.c              |   28 +-
 ext/dlasdq.c              |   10 +-
 ext/dlasdt.c              |    6 +-
 ext/dlaset.c              |    2 +-
 ext/dlasq1.c              |    4 +-
 ext/dlasq2.c              |    2 +-
 ext/dlasr.c               |    2 +-
 ext/dlasrt.c              |    2 +-
 ext/dlaswp.c              |    2 +-
 ext/dlasy2.c              |    2 +-
 ext/dlasyf.c              |    4 +-
 ext/dlat2s.c              |    2 +-
 ext/dlatbs.c              |    4 +-
 ext/dlatdf.c              |    2 +-
 ext/dlatps.c              |    4 +-
 ext/dlatrd.c              |    8 +-
 ext/dlatrs.c              |    4 +-
 ext/dlatrz.c              |    4 +-
 ext/dlatzm.c              |    4 +-
 ext/dlauu2.c              |    2 +-
 ext/dlauum.c              |    2 +-
 ext/dopgtr.c              |    2 +-
 ext/dopmtr.c              |    2 +-
 ext/dorbdb.c              |   20 +-
 ext/dorcsd.c              |   10 +-
 ext/dorg2l.c              |    2 +-
 ext/dorg2r.c              |    2 +-
 ext/dorgbr.c              |    4 +-
 ext/dorghr.c              |    4 +-
 ext/dorgl2.c              |    2 +-
 ext/dorglq.c              |    4 +-
 ext/dorgql.c              |    4 +-
 ext/dorgqr.c              |    4 +-
 ext/dorgr2.c              |    2 +-
 ext/dorgrq.c              |    4 +-
 ext/dorgtr.c              |    4 +-
 ext/dorm2l.c              |    2 +-
 ext/dorm2r.c              |    2 +-
 ext/dormbr.c              |    4 +-
 ext/dormhr.c              |    4 +-
 ext/dorml2.c              |    2 +-
 ext/dormlq.c              |    4 +-
 ext/dormql.c              |    4 +-
 ext/dormqr.c              |    4 +-
 ext/dormr2.c              |    2 +-
 ext/dormr3.c              |    2 +-
 ext/dormrq.c              |    4 +-
 ext/dormrz.c              |    4 +-
 ext/dormtr.c              |    4 +-
 ext/dpbequ.c              |    2 +-
 ext/dpbrfs.c              |    6 +-
 ext/dpbstf.c              |    2 +-
 ext/dpbsv.c               |    4 +-
 ext/dpbsvx.c              |   14 +-
 ext/dpbtf2.c              |    2 +-
 ext/dpbtrf.c              |    2 +-
 ext/dpbtrs.c              |    2 +-
 ext/dpftrf.c              |    2 +-
 ext/dpftri.c              |    2 +-
 ext/dpftrs.c              |    2 +-
 ext/dpoequ.c              |    2 +-
 ext/dpoequb.c             |    2 +-
 ext/dporfs.c              |    6 +-
 ext/dporfsx.c             |   12 +-
 ext/dposv.c               |    4 +-
 ext/dposvx.c              |   14 +-
 ext/dposvxx.c             |   18 +-
 ext/dpotf2.c              |    2 +-
 ext/dpotrf.c              |    2 +-
 ext/dpotri.c              |    2 +-
 ext/dpotrs.c              |    2 +-
 ext/dppequ.c              |    2 +-
 ext/dpprfs.c              |    6 +-
 ext/dppsv.c               |    4 +-
 ext/dppsvx.c              |   14 +-
 ext/dpptrf.c              |    2 +-
 ext/dpptri.c              |    2 +-
 ext/dpptrs.c              |    2 +-
 ext/dpstf2.c              |    4 +-
 ext/dpstrf.c              |    4 +-
 ext/dpteqr.c              |    6 +-
 ext/dptrfs.c              |    6 +-
 ext/dptsv.c               |    6 +-
 ext/dptsvx.c              |   10 +-
 ext/dpttrf.c              |    4 +-
 ext/dpttrs.c              |    2 +-
 ext/dptts2.c              |    2 +-
 ext/drscl.c               |    2 +-
 ext/dsbev.c               |    6 +-
 ext/dsbevd.c              |   10 +-
 ext/dsbevx.c              |   10 +-
 ext/dsbgst.c              |    4 +-
 ext/dsbgv.c               |    8 +-
 ext/dsbgvd.c              |   12 +-
 ext/dsbgvx.c              |   16 +-
 ext/dsbtrd.c              |    8 +-
 ext/dsfrk.c               |    2 +-
 ext/dsgesv.c              |    6 +-
 ext/dspev.c               |    6 +-
 ext/dspevd.c              |   10 +-
 ext/dspevx.c              |    8 +-
 ext/dspgst.c              |    2 +-
 ext/dspgv.c               |    8 +-
 ext/dspgvd.c              |   12 +-
 ext/dspgvx.c              |   10 +-
 ext/dsposv.c              |    4 +-
 ext/dsprfs.c              |    6 +-
 ext/dspsv.c               |    6 +-
 ext/dspsvx.c              |   10 +-
 ext/dsptrd.c              |    8 +-
 ext/dsptrf.c              |    4 +-
 ext/dsptri.c              |    2 +-
 ext/dsptrs.c              |    2 +-
 ext/dstebz.c              |    6 +-
 ext/dstedc.c              |   10 +-
 ext/dstegr.c              |   14 +-
 ext/dstein.c              |    4 +-
 ext/dstemr.c              |   14 +-
 ext/dsteqr.c              |    6 +-
 ext/dsterf.c              |    4 +-
 ext/dstev.c               |    6 +-
 ext/dstevd.c              |   10 +-
 ext/dstevr.c              |   14 +-
 ext/dstevx.c              |   10 +-
 ext/dsyequb.c             |    2 +-
 ext/dsyev.c               |    6 +-
 ext/dsyevd.c              |    8 +-
 ext/dsyevr.c              |   12 +-
 ext/dsyevx.c              |   10 +-
 ext/dsygs2.c              |    2 +-
 ext/dsygst.c              |    2 +-
 ext/dsygv.c               |    8 +-
 ext/dsygvd.c              |   10 +-
 ext/dsygvx.c              |   12 +-
 ext/dsyrfs.c              |    6 +-
 ext/dsyrfsx.c             |   12 +-
 ext/dsysv.c               |    8 +-
 ext/dsysvx.c              |   12 +-
 ext/dsysvxx.c             |   20 +-
 ext/dsyswapr.c            |    2 +-
 ext/dsytd2.c              |    8 +-
 ext/dsytf2.c              |    4 +-
 ext/dsytrd.c              |   10 +-
 ext/dsytrf.c              |    6 +-
 ext/dsytri.c              |    2 +-
 ext/dsytri2.c             |    2 +-
 ext/dsytri2x.c            |    2 +-
 ext/dsytrs.c              |    2 +-
 ext/dsytrs2.c             |    2 +-
 ext/dtbrfs.c              |    4 +-
 ext/dtbtrs.c              |    2 +-
 ext/dtfsm.c               |    2 +-
 ext/dtftri.c              |    2 +-
 ext/dtfttp.c              |    2 +-
 ext/dtfttr.c              |    2 +-
 ext/dtgevc.c              |    4 +-
 ext/dtgex2.c              |    8 +-
 ext/dtgexc.c              |   10 +-
 ext/dtgsen.c              |   20 +-
 ext/dtgsja.c              |   14 +-
 ext/dtgsna.c              |    6 +-
 ext/dtgsy2.c              |    4 +-
 ext/dtgsyl.c              |    6 +-
 ext/dtprfs.c              |    4 +-
 ext/dtptri.c              |    2 +-
 ext/dtptrs.c              |    2 +-
 ext/dtpttf.c              |    2 +-
 ext/dtpttr.c              |    2 +-
 ext/dtrevc.c              |    6 +-
 ext/dtrexc.c              |    4 +-
 ext/dtrrfs.c              |    4 +-
 ext/dtrsen.c              |   10 +-
 ext/dtrsna.c              |    4 +-
 ext/dtrsyl.c              |    2 +-
 ext/dtrti2.c              |    2 +-
 ext/dtrtri.c              |    2 +-
 ext/dtrtrs.c              |    2 +-
 ext/dtrttf.c              |    2 +-
 ext/dtrttp.c              |    2 +-
 ext/dtzrqf.c              |    4 +-
 ext/dtzrzf.c              |    6 +-
 ext/extconf.rb            |   26 +-
 ext/rb_lapack.c           | 6300 ++++++++++++++++++++++-----------------------
 ext/rb_lapack.h           |    8 +-
 ext/sbbcsd.c              |   26 +-
 ext/sbdsdc.c              |   12 +-
 ext/sbdsqr.c              |   10 +-
 ext/sdisna.c              |    2 +-
 ext/sgbbrd.c              |   12 +-
 ext/sgbequ.c              |    4 +-
 ext/sgbequb.c             |    4 +-
 ext/sgbrfs.c              |    6 +-
 ext/sgbrfsx.c             |   14 +-
 ext/sgbsv.c               |    6 +-
 ext/sgbsvx.c              |   20 +-
 ext/sgbsvxx.c             |   22 +-
 ext/sgbtf2.c              |    4 +-
 ext/sgbtrf.c              |    4 +-
 ext/sgbtrs.c              |    2 +-
 ext/sgebak.c              |    2 +-
 ext/sgebal.c              |    4 +-
 ext/sgebd2.c              |   10 +-
 ext/sgebrd.c              |   12 +-
 ext/sgeequ.c              |    4 +-
 ext/sgeequb.c             |    4 +-
 ext/sgees.c               |   10 +-
 ext/sgeesx.c              |   12 +-
 ext/sgeev.c               |   12 +-
 ext/sgeevx.c              |   18 +-
 ext/sgegs.c               |   16 +-
 ext/sgegv.c               |   16 +-
 ext/sgehd2.c              |    4 +-
 ext/sgehrd.c              |    6 +-
 ext/sgejsv.c              |   10 +-
 ext/sgelq2.c              |    4 +-
 ext/sgelqf.c              |    6 +-
 ext/sgels.c               |    6 +-
 ext/sgelsd.c              |    6 +-
 ext/sgelss.c              |    8 +-
 ext/sgelsx.c              |    6 +-
 ext/sgelsy.c              |    8 +-
 ext/sgeql2.c              |    4 +-
 ext/sgeqlf.c              |    6 +-
 ext/sgeqp3.c              |    8 +-
 ext/sgeqpf.c              |    6 +-
 ext/sgeqr2.c              |    4 +-
 ext/sgeqr2p.c             |    4 +-
 ext/sgeqrf.c              |    6 +-
 ext/sgeqrfp.c             |    6 +-
 ext/sgerfs.c              |    6 +-
 ext/sgerfsx.c             |   10 +-
 ext/sgerq2.c              |    4 +-
 ext/sgerqf.c              |    6 +-
 ext/sgesc2.c              |    2 +-
 ext/sgesdd.c              |   10 +-
 ext/sgesv.c               |    6 +-
 ext/sgesvd.c              |   10 +-
 ext/sgesvj.c              |    8 +-
 ext/sgesvx.c              |   20 +-
 ext/sgesvxx.c             |   22 +-
 ext/sgetc2.c              |    6 +-
 ext/sgetf2.c              |    4 +-
 ext/sgetrf.c              |    4 +-
 ext/sgetri.c              |    4 +-
 ext/sgetrs.c              |    2 +-
 ext/sggbak.c              |    2 +-
 ext/sggbal.c              |    8 +-
 ext/sgges.c               |   16 +-
 ext/sggesx.c              |   20 +-
 ext/sggev.c               |   16 +-
 ext/sggevx.c              |   24 +-
 ext/sggglm.c              |   12 +-
 ext/sgghrd.c              |    8 +-
 ext/sgglse.c              |   12 +-
 ext/sggqrf.c              |   10 +-
 ext/sggrqf.c              |   10 +-
 ext/sggsvd.c              |   16 +-
 ext/sggsvp.c              |   10 +-
 ext/sgsvj0.c              |    8 +-
 ext/sgsvj1.c              |    8 +-
 ext/sgtrfs.c              |    6 +-
 ext/sgtsv.c               |    8 +-
 ext/sgtsvx.c              |   16 +-
 ext/sgttrf.c              |   10 +-
 ext/sgttrs.c              |    2 +-
 ext/sgtts2.c              |    2 +-
 ext/shgeqz.c              |   16 +-
 ext/shsein.c              |   12 +-
 ext/shseqr.c              |   10 +-
 ext/sla_gbamv.c           |    2 +-
 ext/sla_gbrfsx_extended.c |    8 +-
 ext/sla_geamv.c           |    2 +-
 ext/sla_gerfsx_extended.c |    8 +-
 ext/sla_lin_berr.c        |    2 +-
 ext/sla_porfsx_extended.c |    8 +-
 ext/sla_syamv.c           |    2 +-
 ext/sla_syrfsx_extended.c |    8 +-
 ext/sla_wwaddw.c          |    4 +-
 ext/slabrd.c              |   14 +-
 ext/slacn2.c              |    4 +-
 ext/slacon.c              |    2 +-
 ext/slacpy.c              |    2 +-
 ext/slaebz.c              |    8 +-
 ext/slaed0.c              |    4 +-
 ext/slaed1.c              |    6 +-
 ext/slaed2.c              |   16 +-
 ext/slaed3.c              |    8 +-
 ext/slaed4.c              |    2 +-
 ext/slaed5.c              |    2 +-
 ext/slaed7.c              |   10 +-
 ext/slaed8.c              |   16 +-
 ext/slaed9.c              |    4 +-
 ext/slaeda.c              |    2 +-
 ext/slaein.c              |    4 +-
 ext/slaexc.c              |    4 +-
 ext/slag2d.c              |    2 +-
 ext/slagtf.c              |   10 +-
 ext/slagtm.c              |    2 +-
 ext/slagts.c              |    2 +-
 ext/slagv2.c              |   10 +-
 ext/slahqr.c              |    8 +-
 ext/slahr2.c              |    8 +-
 ext/slahrd.c              |    8 +-
 ext/slaln2.c              |    2 +-
 ext/slals0.c              |    2 +-
 ext/slalsa.c              |    4 +-
 ext/slalsd.c              |    6 +-
 ext/slamrg.c              |    2 +-
 ext/slapll.c              |    4 +-
 ext/slapmr.c              |    4 +-
 ext/slapmt.c              |    4 +-
 ext/slaqgb.c              |    2 +-
 ext/slaqge.c              |    2 +-
 ext/slaqp2.c              |   10 +-
 ext/slaqps.c              |   14 +-
 ext/slaqr0.c              |   10 +-
 ext/slaqr1.c              |    2 +-
 ext/slaqr2.c              |    8 +-
 ext/slaqr3.c              |    8 +-
 ext/slaqr4.c              |   10 +-
 ext/slaqr5.c              |    8 +-
 ext/slaqsb.c              |    2 +-
 ext/slaqsp.c              |    2 +-
 ext/slaqsy.c              |    2 +-
 ext/slaqtr.c              |    2 +-
 ext/slar1v.c              |    4 +-
 ext/slar2v.c              |    6 +-
 ext/slarf.c               |    2 +-
 ext/slarfb.c              |    2 +-
 ext/slarfg.c              |    2 +-
 ext/slarfgp.c             |    2 +-
 ext/slarft.c              |    4 +-
 ext/slarfx.c              |    2 +-
 ext/slargv.c              |    6 +-
 ext/slarnv.c              |    4 +-
 ext/slarra.c              |    6 +-
 ext/slarrb.c              |    6 +-
 ext/slarrd.c              |    8 +-
 ext/slarre.c              |   20 +-
 ext/slarrf.c              |    6 +-
 ext/slarrj.c              |    4 +-
 ext/slarrr.c              |    2 +-
 ext/slarrv.c              |   14 +-
 ext/slarscl2.c            |    2 +-
 ext/slartv.c              |    4 +-
 ext/slaruv.c              |    4 +-
 ext/slarz.c               |    2 +-
 ext/slarzb.c              |    2 +-
 ext/slarzt.c              |    4 +-
 ext/slascl.c              |    2 +-
 ext/slascl2.c             |    2 +-
 ext/slasd0.c              |    6 +-
 ext/slasd1.c              |    8 +-
 ext/slasd2.c              |   20 +-
 ext/slasd3.c              |   12 +-
 ext/slasd4.c              |    2 +-
 ext/slasd5.c              |    2 +-
 ext/slasd6.c              |   22 +-
 ext/slasd7.c              |   16 +-
 ext/slasd8.c              |   14 +-
 ext/slasda.c              |   28 +-
 ext/slasdq.c              |   10 +-
 ext/slasdt.c              |    6 +-
 ext/slaset.c              |    2 +-
 ext/slasq1.c              |    4 +-
 ext/slasq2.c              |    2 +-
 ext/slasr.c               |    2 +-
 ext/slasrt.c              |    2 +-
 ext/slaswp.c              |    2 +-
 ext/slasy2.c              |    2 +-
 ext/slasyf.c              |    4 +-
 ext/slatbs.c              |    4 +-
 ext/slatdf.c              |    2 +-
 ext/slatps.c              |    4 +-
 ext/slatrd.c              |    8 +-
 ext/slatrs.c              |    4 +-
 ext/slatrz.c              |    4 +-
 ext/slatzm.c              |    4 +-
 ext/slauu2.c              |    2 +-
 ext/slauum.c              |    2 +-
 ext/sopgtr.c              |    2 +-
 ext/sopmtr.c              |    2 +-
 ext/sorbdb.c              |   20 +-
 ext/sorcsd.c              |   10 +-
 ext/sorg2l.c              |    2 +-
 ext/sorg2r.c              |    2 +-
 ext/sorgbr.c              |    4 +-
 ext/sorghr.c              |    4 +-
 ext/sorgl2.c              |    2 +-
 ext/sorglq.c              |    4 +-
 ext/sorgql.c              |    4 +-
 ext/sorgqr.c              |    4 +-
 ext/sorgr2.c              |    2 +-
 ext/sorgrq.c              |    4 +-
 ext/sorgtr.c              |    4 +-
 ext/sorm2l.c              |    2 +-
 ext/sorm2r.c              |    2 +-
 ext/sormbr.c              |    4 +-
 ext/sormhr.c              |    4 +-
 ext/sorml2.c              |    2 +-
 ext/sormlq.c              |    4 +-
 ext/sormql.c              |    4 +-
 ext/sormqr.c              |    4 +-
 ext/sormr2.c              |    2 +-
 ext/sormr3.c              |    2 +-
 ext/sormrq.c              |    4 +-
 ext/sormrz.c              |    4 +-
 ext/sormtr.c              |    4 +-
 ext/spbequ.c              |    2 +-
 ext/spbrfs.c              |    6 +-
 ext/spbstf.c              |    2 +-
 ext/spbsv.c               |    4 +-
 ext/spbsvx.c              |   14 +-
 ext/spbtf2.c              |    2 +-
 ext/spbtrf.c              |    2 +-
 ext/spbtrs.c              |    2 +-
 ext/spftrf.c              |    2 +-
 ext/spftri.c              |    2 +-
 ext/spftrs.c              |    2 +-
 ext/spoequ.c              |    2 +-
 ext/spoequb.c             |    2 +-
 ext/sporfs.c              |    6 +-
 ext/sporfsx.c             |   12 +-
 ext/sposv.c               |    4 +-
 ext/sposvx.c              |   14 +-
 ext/sposvxx.c             |   18 +-
 ext/spotf2.c              |    2 +-
 ext/spotrf.c              |    2 +-
 ext/spotri.c              |    2 +-
 ext/spotrs.c              |    2 +-
 ext/sppequ.c              |    2 +-
 ext/spprfs.c              |    6 +-
 ext/sppsv.c               |    4 +-
 ext/sppsvx.c              |   14 +-
 ext/spptrf.c              |    2 +-
 ext/spptri.c              |    2 +-
 ext/spptrs.c              |    2 +-
 ext/spstf2.c              |    4 +-
 ext/spstrf.c              |    4 +-
 ext/spteqr.c              |    6 +-
 ext/sptrfs.c              |    6 +-
 ext/sptsv.c               |    6 +-
 ext/sptsvx.c              |   10 +-
 ext/spttrf.c              |    4 +-
 ext/spttrs.c              |    2 +-
 ext/sptts2.c              |    2 +-
 ext/srscl.c               |    2 +-
 ext/ssbev.c               |    6 +-
 ext/ssbevd.c              |   10 +-
 ext/ssbevx.c              |   10 +-
 ext/ssbgst.c              |    4 +-
 ext/ssbgv.c               |    8 +-
 ext/ssbgvd.c              |   12 +-
 ext/ssbgvx.c              |   16 +-
 ext/ssbtrd.c              |    8 +-
 ext/ssfrk.c               |    2 +-
 ext/sspev.c               |    6 +-
 ext/sspevd.c              |   10 +-
 ext/sspevx.c              |    8 +-
 ext/sspgst.c              |    2 +-
 ext/sspgv.c               |    8 +-
 ext/sspgvd.c              |   12 +-
 ext/sspgvx.c              |   10 +-
 ext/ssprfs.c              |    6 +-
 ext/sspsv.c               |    6 +-
 ext/sspsvx.c              |   10 +-
 ext/ssptrd.c              |    8 +-
 ext/ssptrf.c              |    4 +-
 ext/ssptri.c              |    2 +-
 ext/ssptrs.c              |    2 +-
 ext/sstebz.c              |    6 +-
 ext/sstedc.c              |   10 +-
 ext/sstegr.c              |   14 +-
 ext/sstein.c              |    4 +-
 ext/sstemr.c              |   14 +-
 ext/ssteqr.c              |    6 +-
 ext/ssterf.c              |    4 +-
 ext/sstev.c               |    6 +-
 ext/sstevd.c              |   10 +-
 ext/sstevr.c              |   14 +-
 ext/sstevx.c              |   10 +-
 ext/ssyequb.c             |    2 +-
 ext/ssyev.c               |    6 +-
 ext/ssyevd.c              |    8 +-
 ext/ssyevr.c              |   12 +-
 ext/ssyevx.c              |   10 +-
 ext/ssygs2.c              |    2 +-
 ext/ssygst.c              |    2 +-
 ext/ssygv.c               |    8 +-
 ext/ssygvd.c              |   10 +-
 ext/ssygvx.c              |   12 +-
 ext/ssyrfs.c              |    6 +-
 ext/ssyrfsx.c             |   12 +-
 ext/ssysv.c               |    8 +-
 ext/ssysvx.c              |   12 +-
 ext/ssysvxx.c             |   20 +-
 ext/ssyswapr.c            |    2 +-
 ext/ssytd2.c              |    8 +-
 ext/ssytf2.c              |    4 +-
 ext/ssytrd.c              |   10 +-
 ext/ssytrf.c              |    6 +-
 ext/ssytri.c              |    2 +-
 ext/ssytri2.c             |    4 +-
 ext/ssytri2x.c            |    2 +-
 ext/ssytrs.c              |    2 +-
 ext/ssytrs2.c             |    2 +-
 ext/stbrfs.c              |    4 +-
 ext/stbtrs.c              |    2 +-
 ext/stfsm.c               |    2 +-
 ext/stftri.c              |    2 +-
 ext/stfttp.c              |    2 +-
 ext/stfttr.c              |    2 +-
 ext/stgevc.c              |    4 +-
 ext/stgex2.c              |    8 +-
 ext/stgexc.c              |   10 +-
 ext/stgsen.c              |   20 +-
 ext/stgsja.c              |   14 +-
 ext/stgsna.c              |    6 +-
 ext/stgsy2.c              |    4 +-
 ext/stgsyl.c              |    6 +-
 ext/stprfs.c              |    4 +-
 ext/stptri.c              |    2 +-
 ext/stptrs.c              |    2 +-
 ext/stpttf.c              |    2 +-
 ext/stpttr.c              |    2 +-
 ext/strevc.c              |    6 +-
 ext/strexc.c              |    4 +-
 ext/strrfs.c              |    4 +-
 ext/strsen.c              |   10 +-
 ext/strsna.c              |    4 +-
 ext/strsyl.c              |    2 +-
 ext/strti2.c              |    2 +-
 ext/strtri.c              |    2 +-
 ext/strtrs.c              |    2 +-
 ext/strttf.c              |    2 +-
 ext/strttp.c              |    2 +-
 ext/stzrqf.c              |    4 +-
 ext/stzrzf.c              |    6 +-
 ext/zbbcsd.c              |   26 +-
 ext/zbdsqr.c              |   10 +-
 ext/zcgesv.c              |    6 +-
 ext/zcposv.c              |    4 +-
 ext/zdrscl.c              |    2 +-
 ext/zgbbrd.c              |   12 +-
 ext/zgbequ.c              |    4 +-
 ext/zgbequb.c             |    4 +-
 ext/zgbrfs.c              |    6 +-
 ext/zgbrfsx.c             |   14 +-
 ext/zgbsv.c               |    6 +-
 ext/zgbsvx.c              |   20 +-
 ext/zgbsvxx.c             |   22 +-
 ext/zgbtf2.c              |    4 +-
 ext/zgbtrf.c              |    4 +-
 ext/zgbtrs.c              |    2 +-
 ext/zgebak.c              |    2 +-
 ext/zgebal.c              |    4 +-
 ext/zgebd2.c              |   10 +-
 ext/zgebrd.c              |   12 +-
 ext/zgeequ.c              |    4 +-
 ext/zgeequb.c             |    4 +-
 ext/zgees.c               |    8 +-
 ext/zgeesx.c              |    8 +-
 ext/zgeev.c               |   10 +-
 ext/zgeevx.c              |   16 +-
 ext/zgegs.c               |   14 +-
 ext/zgegv.c               |   16 +-
 ext/zgehd2.c              |    4 +-
 ext/zgehrd.c              |    6 +-
 ext/zgelq2.c              |    4 +-
 ext/zgelqf.c              |    6 +-
 ext/zgels.c               |    6 +-
 ext/zgelsd.c              |    6 +-
 ext/zgelss.c              |    8 +-
 ext/zgelsx.c              |    6 +-
 ext/zgelsy.c              |    8 +-
 ext/zgeql2.c              |    4 +-
 ext/zgeqlf.c              |    6 +-
 ext/zgeqp3.c              |    8 +-
 ext/zgeqpf.c              |    6 +-
 ext/zgeqr2.c              |    4 +-
 ext/zgeqr2p.c             |    4 +-
 ext/zgeqrf.c              |    6 +-
 ext/zgeqrfp.c             |    6 +-
 ext/zgerfs.c              |    6 +-
 ext/zgerfsx.c             |   10 +-
 ext/zgerq2.c              |    4 +-
 ext/zgerqf.c              |    6 +-
 ext/zgesc2.c              |    2 +-
 ext/zgesdd.c              |   10 +-
 ext/zgesv.c               |    6 +-
 ext/zgesvd.c              |   10 +-
 ext/zgesvx.c              |   20 +-
 ext/zgesvxx.c             |   22 +-
 ext/zgetc2.c              |    6 +-
 ext/zgetf2.c              |    4 +-
 ext/zgetrf.c              |    4 +-
 ext/zgetri.c              |    4 +-
 ext/zgetrs.c              |    2 +-
 ext/zggbak.c              |    2 +-
 ext/zggbal.c              |    8 +-
 ext/zgges.c               |   14 +-
 ext/zggesx.c              |   20 +-
 ext/zggev.c               |   16 +-
 ext/zggevx.c              |   22 +-
 ext/zggglm.c              |   12 +-
 ext/zgghrd.c              |    8 +-
 ext/zgglse.c              |   12 +-
 ext/zggqrf.c              |   10 +-
 ext/zggrqf.c              |   10 +-
 ext/zggsvd.c              |   16 +-
 ext/zggsvp.c              |   10 +-
 ext/zgtrfs.c              |    6 +-
 ext/zgtsv.c               |    8 +-
 ext/zgtsvx.c              |   16 +-
 ext/zgttrf.c              |   10 +-
 ext/zgttrs.c              |    2 +-
 ext/zgtts2.c              |    2 +-
 ext/zhbev.c               |    6 +-
 ext/zhbevd.c              |   12 +-
 ext/zhbevx.c              |   10 +-
 ext/zhbgst.c              |    4 +-
 ext/zhbgv.c               |    8 +-
 ext/zhbgvd.c              |   14 +-
 ext/zhbgvx.c              |   12 +-
 ext/zhbtrd.c              |    8 +-
 ext/zheequb.c             |    2 +-
 ext/zheev.c               |    6 +-
 ext/zheevd.c              |   10 +-
 ext/zheevr.c              |   14 +-
 ext/zheevx.c              |   10 +-
 ext/zhegs2.c              |    2 +-
 ext/zhegst.c              |    2 +-
 ext/zhegv.c               |    8 +-
 ext/zhegvd.c              |   12 +-
 ext/zhegvx.c              |   12 +-
 ext/zherfs.c              |    6 +-
 ext/zherfsx.c             |   12 +-
 ext/zhesv.c               |    8 +-
 ext/zhesvx.c              |   12 +-
 ext/zhesvxx.c             |   20 +-
 ext/zhetd2.c              |    8 +-
 ext/zhetf2.c              |    4 +-
 ext/zhetrd.c              |   10 +-
 ext/zhetrf.c              |    6 +-
 ext/zhetri.c              |    2 +-
 ext/zhetrs.c              |    2 +-
 ext/zhetrs2.c             |    2 +-
 ext/zhfrk.c               |    2 +-
 ext/zhgeqz.c              |   14 +-
 ext/zhpev.c               |    6 +-
 ext/zhpevd.c              |   12 +-
 ext/zhpevx.c              |    8 +-
 ext/zhpgst.c              |    2 +-
 ext/zhpgv.c               |    8 +-
 ext/zhpgvd.c              |   10 +-
 ext/zhpgvx.c              |   10 +-
 ext/zhprfs.c              |    6 +-
 ext/zhpsv.c               |    6 +-
 ext/zhpsvx.c              |   10 +-
 ext/zhptrd.c              |    8 +-
 ext/zhptrf.c              |    4 +-
 ext/zhptri.c              |    2 +-
 ext/zhptrs.c              |    2 +-
 ext/zhsein.c              |   10 +-
 ext/zhseqr.c              |    8 +-
 ext/zla_gbamv.c           |    2 +-
 ext/zla_gbrfsx_extended.c |    8 +-
 ext/zla_geamv.c           |    2 +-
 ext/zla_gerfsx_extended.c |    8 +-
 ext/zla_heamv.c           |    2 +-
 ext/zla_herfsx_extended.c |    8 +-
 ext/zla_lin_berr.c        |    2 +-
 ext/zla_porfsx_extended.c |    8 +-
 ext/zla_syamv.c           |    2 +-
 ext/zla_syrfsx_extended.c |    8 +-
 ext/zla_wwaddw.c          |    4 +-
 ext/zlabrd.c              |   14 +-
 ext/zlacgv.c              |    2 +-
 ext/zlacn2.c              |    4 +-
 ext/zlacon.c              |    2 +-
 ext/zlacp2.c              |    2 +-
 ext/zlacpy.c              |    2 +-
 ext/zlacrm.c              |    2 +-
 ext/zlacrt.c              |    4 +-
 ext/zlaed0.c              |    6 +-
 ext/zlaed7.c              |   10 +-
 ext/zlaed8.c              |   16 +-
 ext/zlaein.c              |    2 +-
 ext/zlag2c.c              |    2 +-
 ext/zlagtm.c              |    2 +-
 ext/zlahef.c              |    4 +-
 ext/zlahqr.c              |    6 +-
 ext/zlahr2.c              |    8 +-
 ext/zlahrd.c              |    8 +-
 ext/zlals0.c              |    2 +-
 ext/zlalsa.c              |    4 +-
 ext/zlalsd.c              |    6 +-
 ext/zlapll.c              |    4 +-
 ext/zlapmr.c              |    4 +-
 ext/zlapmt.c              |    4 +-
 ext/zlaqgb.c              |    2 +-
 ext/zlaqge.c              |    2 +-
 ext/zlaqhb.c              |    4 +-
 ext/zlaqhe.c              |    2 +-
 ext/zlaqhp.c              |    2 +-
 ext/zlaqp2.c              |   10 +-
 ext/zlaqps.c              |   14 +-
 ext/zlaqr0.c              |    8 +-
 ext/zlaqr1.c              |    2 +-
 ext/zlaqr2.c              |    6 +-
 ext/zlaqr3.c              |    6 +-
 ext/zlaqr4.c              |    8 +-
 ext/zlaqr5.c              |    6 +-
 ext/zlaqsb.c              |    2 +-
 ext/zlaqsp.c              |    2 +-
 ext/zlaqsy.c              |    2 +-
 ext/zlar1v.c              |    4 +-
 ext/zlar2v.c              |    6 +-
 ext/zlarcm.c              |    2 +-
 ext/zlarf.c               |    2 +-
 ext/zlarfb.c              |    2 +-
 ext/zlarfg.c              |    2 +-
 ext/zlarfgp.c             |    2 +-
 ext/zlarft.c              |    4 +-
 ext/zlarfx.c              |    2 +-
 ext/zlargv.c              |    6 +-
 ext/zlarnv.c              |    4 +-
 ext/zlarrv.c              |   14 +-
 ext/zlarscl2.c            |    2 +-
 ext/zlartv.c              |    4 +-
 ext/zlarz.c               |    2 +-
 ext/zlarzb.c              |    2 +-
 ext/zlarzt.c              |    4 +-
 ext/zlascl.c              |    2 +-
 ext/zlascl2.c             |    2 +-
 ext/zlaset.c              |    2 +-
 ext/zlasr.c               |    2 +-
 ext/zlaswp.c              |    2 +-
 ext/zlasyf.c              |    4 +-
 ext/zlat2c.c              |    2 +-
 ext/zlatbs.c              |    4 +-
 ext/zlatdf.c              |    2 +-
 ext/zlatps.c              |    4 +-
 ext/zlatrd.c              |    8 +-
 ext/zlatrs.c              |    4 +-
 ext/zlatrz.c              |    4 +-
 ext/zlatzm.c              |    4 +-
 ext/zlauu2.c              |    2 +-
 ext/zlauum.c              |    2 +-
 ext/zpbequ.c              |    2 +-
 ext/zpbrfs.c              |    6 +-
 ext/zpbstf.c              |    2 +-
 ext/zpbsv.c               |    4 +-
 ext/zpbsvx.c              |   14 +-
 ext/zpbtf2.c              |    2 +-
 ext/zpbtrf.c              |    2 +-
 ext/zpbtrs.c              |    2 +-
 ext/zpftrf.c              |    2 +-
 ext/zpftri.c              |    2 +-
 ext/zpftrs.c              |    2 +-
 ext/zpoequ.c              |    2 +-
 ext/zpoequb.c             |    2 +-
 ext/zporfs.c              |    6 +-
 ext/zporfsx.c             |   12 +-
 ext/zposv.c               |    4 +-
 ext/zposvx.c              |   14 +-
 ext/zposvxx.c             |   18 +-
 ext/zpotf2.c              |    2 +-
 ext/zpotrf.c              |    2 +-
 ext/zpotri.c              |    2 +-
 ext/zpotrs.c              |    2 +-
 ext/zppequ.c              |    2 +-
 ext/zpprfs.c              |    6 +-
 ext/zppsv.c               |    4 +-
 ext/zppsvx.c              |   14 +-
 ext/zpptrf.c              |    2 +-
 ext/zpptri.c              |    2 +-
 ext/zpptrs.c              |    2 +-
 ext/zpstf2.c              |    4 +-
 ext/zpstrf.c              |    4 +-
 ext/zpteqr.c              |    6 +-
 ext/zptrfs.c              |    6 +-
 ext/zptsv.c               |    6 +-
 ext/zptsvx.c              |   10 +-
 ext/zpttrf.c              |    4 +-
 ext/zpttrs.c              |    2 +-
 ext/zptts2.c              |    2 +-
 ext/zrot.c                |    4 +-
 ext/zspmv.c               |    2 +-
 ext/zspr.c                |    2 +-
 ext/zsprfs.c              |    6 +-
 ext/zspsv.c               |    6 +-
 ext/zspsvx.c              |   10 +-
 ext/zsptrf.c              |    4 +-
 ext/zsptri.c              |    2 +-
 ext/zsptrs.c              |    2 +-
 ext/zstedc.c              |   12 +-
 ext/zstegr.c              |   14 +-
 ext/zstein.c              |    4 +-
 ext/zstemr.c              |   14 +-
 ext/zsteqr.c              |    6 +-
 ext/zsyequb.c             |    2 +-
 ext/zsymv.c               |    2 +-
 ext/zsyr.c                |    2 +-
 ext/zsyrfs.c              |    6 +-
 ext/zsyrfsx.c             |   12 +-
 ext/zsysv.c               |    8 +-
 ext/zsysvx.c              |   12 +-
 ext/zsysvxx.c             |   20 +-
 ext/zsyswapr.c            |    2 +-
 ext/zsytf2.c              |    4 +-
 ext/zsytrf.c              |    6 +-
 ext/zsytri.c              |    2 +-
 ext/zsytri2.c             |    2 +-
 ext/zsytri2x.c            |    2 +-
 ext/zsytrs.c              |    2 +-
 ext/zsytrs2.c             |    2 +-
 ext/ztbrfs.c              |    4 +-
 ext/ztbtrs.c              |    2 +-
 ext/ztfsm.c               |    2 +-
 ext/ztftri.c              |    2 +-
 ext/ztfttp.c              |    2 +-
 ext/ztfttr.c              |    2 +-
 ext/ztgevc.c              |    4 +-
 ext/ztgex2.c              |    8 +-
 ext/ztgexc.c              |    8 +-
 ext/ztgsen.c              |   18 +-
 ext/ztgsja.c              |   14 +-
 ext/ztgsna.c              |    6 +-
 ext/ztgsy2.c              |    4 +-
 ext/ztgsyl.c              |    6 +-
 ext/ztprfs.c              |    4 +-
 ext/ztptri.c              |    2 +-
 ext/ztptrs.c              |    2 +-
 ext/ztpttf.c              |    2 +-
 ext/ztpttr.c              |    2 +-
 ext/ztrevc.c              |    6 +-
 ext/ztrexc.c              |    4 +-
 ext/ztrrfs.c              |    4 +-
 ext/ztrsen.c              |    8 +-
 ext/ztrsna.c              |    4 +-
 ext/ztrsyl.c              |    2 +-
 ext/ztrti2.c              |    2 +-
 ext/ztrtri.c              |    2 +-
 ext/ztrtrs.c              |    2 +-
 ext/ztrttf.c              |    2 +-
 ext/ztrttp.c              |    2 +-
 ext/ztzrqf.c              |    4 +-
 ext/ztzrzf.c              |    6 +-
 ext/zunbdb.c              |   20 +-
 ext/zuncsd.c              |   10 +-
 ext/zung2l.c              |    2 +-
 ext/zung2r.c              |    2 +-
 ext/zungbr.c              |    4 +-
 ext/zunghr.c              |    4 +-
 ext/zungl2.c              |    2 +-
 ext/zunglq.c              |    4 +-
 ext/zungql.c              |    4 +-
 ext/zungqr.c              |    4 +-
 ext/zungr2.c              |    2 +-
 ext/zungrq.c              |    4 +-
 ext/zungtr.c              |    4 +-
 ext/zunm2l.c              |    2 +-
 ext/zunm2r.c              |    2 +-
 ext/zunmbr.c              |    4 +-
 ext/zunmhr.c              |    4 +-
 ext/zunml2.c              |    2 +-
 ext/zunmlq.c              |    4 +-
 ext/zunmql.c              |    4 +-
 ext/zunmqr.c              |    4 +-
 ext/zunmr2.c              |    2 +-
 ext/zunmr3.c              |    2 +-
 ext/zunmrq.c              |    4 +-
 ext/zunmrz.c              |    4 +-
 ext/zunmtr.c              |    4 +-
 ext/zupgtr.c              |    2 +-
 ext/zupmtr.c              |    2 +-
 1391 files changed, 7479 insertions(+), 7463 deletions(-)

diff --git a/Rakefile b/Rakefile
index d0d2205..c24d5e8 100644
--- a/Rakefile
+++ b/Rakefile
@@ -3,7 +3,7 @@ require "rubygems/package_task"
 require "rake/clean"
 require "rake/testtask"
 
-version = "1.6"
+version = "1.7.1"
 target_prefix = "numru"
 
 # get options
diff --git a/dev/make_csrc.rb b/dev/make_csrc.rb
index 4b698e2..cb7da56 100644
--- a/dev/make_csrc.rb
+++ b/dev/make_csrc.rb
@@ -524,7 +524,7 @@ EOF
     if dims = arg[:dims]
       code << <<"EOF"
   {
-    int shape[#{dims.length}];
+    na_shape_t shape[#{dims.length}];
 EOF
       dims.each_with_index{|dim,k|
         get_vars(dim).each{|d|
@@ -553,7 +553,7 @@ EOF
       end
       code << <<"EOF"
   {
-    int shape[#{dims.length}];
+    na_shape_t shape[#{dims.length}];
 EOF
       dims.each_with_index{|dim,k|
         ds = get_vars(dim)
@@ -797,6 +797,12 @@ extern integer ilaenv_(integer* ispec, char* name, char* opts, integer* n1, inte
 static VALUE sHelp, sUsage;
 static VALUE #{RBPREFIX}ZERO;
 
+/* for compatibility for NArray and NArray with bigmem patch */
+#ifndef NARRAY_BIGMEM
+typedef int    na_shape_t;
+#endif
+
+
 EOF
   }
 
diff --git a/ext/cbbcsd.c b/ext/cbbcsd.c
index ceebbb9..c7da3ff 100644
--- a/ext/cbbcsd.c
+++ b/ext/cbbcsd.c
@@ -168,55 +168,55 @@ rblapack_cbbcsd(int argc, VALUE *argv, VALUE self){
     rblapack_phi = na_change_type(rblapack_phi, NA_SFLOAT);
   phi = NA_PTR_TYPE(rblapack_phi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b11d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b11d = NA_PTR_TYPE(rblapack_b11d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b11e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b11e = NA_PTR_TYPE(rblapack_b11e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b12d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b12d = NA_PTR_TYPE(rblapack_b12d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b12e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b12e = NA_PTR_TYPE(rblapack_b12e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b21d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b21d = NA_PTR_TYPE(rblapack_b21d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b21e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b21e = NA_PTR_TYPE(rblapack_b21e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b22d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b22d = NA_PTR_TYPE(rblapack_b22d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b22e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b22e = NA_PTR_TYPE(rblapack_b22e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -225,7 +225,7 @@ rblapack_cbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_theta = rblapack_theta_out__;
   theta = theta_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu1;
     shape[1] = p;
     rblapack_u1_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_cbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u1 = rblapack_u1_out__;
   u1 = u1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = m-p;
     rblapack_u2_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_cbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u2 = rblapack_u2_out__;
   u2 = u2_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv1t;
     shape[1] = q;
     rblapack_v1t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_cbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_v1t = rblapack_v1t_out__;
   v1t = v1t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv2t;
     shape[1] = m-q;
     rblapack_v2t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cbdsqr.c b/ext/cbdsqr.c
index eb69ea1..7839e6d 100644
--- a/ext/cbdsqr.c
+++ b/ext/cbdsqr.c
@@ -116,7 +116,7 @@ rblapack_cbdsqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_cbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_cbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_cbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_cbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbbrd.c b/ext/cgbbrd.c
index d735bfc..d95790c 100644
--- a/ext/cgbbrd.c
+++ b/ext/cgbbrd.c
@@ -91,33 +91,33 @@ rblapack_cgbbrd(int argc, VALUE *argv, VALUE self){
   m = ldab;
   ldq = ((lsame_(&vect,"Q")) || (lsame_(&vect,"B"))) ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = m;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldpt;
     shape[1] = n;
     rblapack_pt = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   pt = NA_PTR_TYPE(rblapack_pt, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_cgbbrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbequ.c b/ext/cgbequ.c
index 1f03088..59929ba 100644
--- a/ext/cgbequ.c
+++ b/ext/cgbequ.c
@@ -67,13 +67,13 @@ rblapack_cgbequ(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,m);
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgbequb.c b/ext/cgbequb.c
index ca141fa..1161efc 100644
--- a/ext/cgbequb.c
+++ b/ext/cgbequb.c
@@ -65,13 +65,13 @@ rblapack_cgbequb(int argc, VALUE *argv, VALUE self){
   ku = NUM2INT(rblapack_ku);
   m = ldab;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgbrfs.c b/ext/cgbrfs.c
index 7a8dc20..085cb21 100644
--- a/ext/cgbrfs.c
+++ b/ext/cgbrfs.c
@@ -119,19 +119,19 @@ rblapack_cgbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbrfsx.c b/ext/cgbrfsx.c
index eaf857b..77e4ffb 100644
--- a/ext/cgbrfsx.c
+++ b/ext/cgbrfsx.c
@@ -171,27 +171,27 @@ rblapack_cgbrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_r = na_change_type(rblapack_r, NA_SFLOAT);
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_cgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -209,7 +209,7 @@ rblapack_cgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -219,7 +219,7 @@ rblapack_cgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgbsv.c b/ext/cgbsv.c
index 1edeeba..e168998 100644
--- a/ext/cgbsv.c
+++ b/ext/cgbsv.c
@@ -73,13 +73,13 @@ rblapack_cgbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -89,7 +89,7 @@ rblapack_cgbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbsvx.c b/ext/cgbsvx.c
index 2757af2..04d4cd8 100644
--- a/ext/cgbsvx.c
+++ b/ext/cgbsvx.c
@@ -176,32 +176,32 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
     afb = NA_PTR_TYPE(rblapack_afb, complex*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -211,7 +211,7 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -234,7 +234,7 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -245,7 +245,7 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -256,7 +256,7 @@ rblapack_cgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbsvxx.c b/ext/cgbsvxx.c
index e822b79..d8355e6 100644
--- a/ext/cgbsvxx.c
+++ b/ext/cgbsvxx.c
@@ -173,34 +173,34 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   params = NA_PTR_TYPE(rblapack_params, real*);
   equed = StringValueCStr(rblapack_equed)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -220,7 +220,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -238,7 +238,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -247,7 +247,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_cgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgbtf2.c b/ext/cgbtf2.c
index f7eaa36..8e14ed3 100644
--- a/ext/cgbtf2.c
+++ b/ext/cgbtf2.c
@@ -61,13 +61,13 @@ rblapack_cgbtf2(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbtrf.c b/ext/cgbtrf.c
index a46dc33..35b04d4 100644
--- a/ext/cgbtrf.c
+++ b/ext/cgbtrf.c
@@ -61,13 +61,13 @@ rblapack_cgbtrf(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgbtrs.c b/ext/cgbtrs.c
index 02d9c60..a395bb9 100644
--- a/ext/cgbtrs.c
+++ b/ext/cgbtrs.c
@@ -85,7 +85,7 @@ rblapack_cgbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgebak.c b/ext/cgebak.c
index 47eef7f..532905a 100644
--- a/ext/cgebak.c
+++ b/ext/cgebak.c
@@ -75,7 +75,7 @@ rblapack_cgebak(int argc, VALUE *argv, VALUE self){
   v = NA_PTR_TYPE(rblapack_v, complex*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgebal.c b/ext/cgebal.c
index e840c55..64d39ca 100644
--- a/ext/cgebal.c
+++ b/ext/cgebal.c
@@ -57,13 +57,13 @@ rblapack_cgebal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgebd2.c b/ext/cgebd2.c
index 3906278..b166860 100644
--- a/ext/cgebd2.c
+++ b/ext/cgebd2.c
@@ -60,31 +60,31 @@ rblapack_cgebd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgebrd.c b/ext/cgebrd.c
index a55de2d..236e7d1 100644
--- a/ext/cgebrd.c
+++ b/ext/cgebrd.c
@@ -71,37 +71,37 @@ rblapack_cgebrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeequ.c b/ext/cgeequ.c
index 0bcf827..f9a1837 100644
--- a/ext/cgeequ.c
+++ b/ext/cgeequ.c
@@ -57,13 +57,13 @@ rblapack_cgeequ(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgeequb.c b/ext/cgeequb.c
index 0a0d69b..ac441ae 100644
--- a/ext/cgeequb.c
+++ b/ext/cgeequb.c
@@ -57,13 +57,13 @@ rblapack_cgeequb(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgees.c b/ext/cgees.c
index 656d35d..de94189 100644
--- a/ext/cgees.c
+++ b/ext/cgees.c
@@ -92,26 +92,26 @@ rblapack_cgees(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeesx.c b/ext/cgeesx.c
index 4091c34..1370dc9 100644
--- a/ext/cgeesx.c
+++ b/ext/cgeesx.c
@@ -100,26 +100,26 @@ rblapack_cgeesx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeev.c b/ext/cgeev.c
index 7667d91..76502ab 100644
--- a/ext/cgeev.c
+++ b/ext/cgeev.c
@@ -78,33 +78,33 @@ rblapack_cgeev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeevx.c b/ext/cgeevx.c
index b3e195d..a3a71cc 100644
--- a/ext/cgeevx.c
+++ b/ext/cgeevx.c
@@ -98,51 +98,51 @@ rblapack_cgeevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgegs.c b/ext/cgegs.c
index f8631f2..80e51c3 100644
--- a/ext/cgegs.c
+++ b/ext/cgegs.c
@@ -96,39 +96,39 @@ rblapack_cgegs(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_cgegs(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgegv.c b/ext/cgegv.c
index 2aed674..7045668 100644
--- a/ext/cgegv.c
+++ b/ext/cgegv.c
@@ -97,45 +97,45 @@ rblapack_cgegv(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 8*n;
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_cgegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgehd2.c b/ext/cgehd2.c
index 1ba61be..d3ec6d6 100644
--- a/ext/cgehd2.c
+++ b/ext/cgehd2.c
@@ -58,13 +58,13 @@ rblapack_cgehd2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgehrd.c b/ext/cgehrd.c
index 24852a0..b716308 100644
--- a/ext/cgehrd.c
+++ b/ext/cgehrd.c
@@ -69,19 +69,19 @@ rblapack_cgehrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgelq2.c b/ext/cgelq2.c
index 9ed4b7d..34a0e8d 100644
--- a/ext/cgelq2.c
+++ b/ext/cgelq2.c
@@ -52,13 +52,13 @@ rblapack_cgelq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgelqf.c b/ext/cgelqf.c
index 54fca61..a7f1eef 100644
--- a/ext/cgelqf.c
+++ b/ext/cgelqf.c
@@ -65,19 +65,19 @@ rblapack_cgelqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgels.c b/ext/cgels.c
index cb5bf56..7c092ee 100644
--- a/ext/cgels.c
+++ b/ext/cgels.c
@@ -83,13 +83,13 @@ rblapack_cgels(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_cgels(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgelsd.c b/ext/cgelsd.c
index a6c346a..252bd76 100644
--- a/ext/cgelsd.c
+++ b/ext/cgelsd.c
@@ -99,19 +99,19 @@ rblapack_cgelsd(int argc, VALUE *argv, VALUE self){
   liwork = MAX(1,3*(MIN(m,n))*nlvl+11*(MIN(m,n)));
   lrwork = m>=n ? 10*n+2*n*smlsiz+8*n*nlvl+3*smlsiz*nrhs+(smlsiz+1)*(smlsiz+1) : 10*m+2*m*smlsiz+8*m*nlvl+2*smlsiz*nrhs+(smlsiz+1)*(smlsiz+1);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgelss.c b/ext/cgelss.c
index ceab765..43b8d27 100644
--- a/ext/cgelss.c
+++ b/ext/cgelss.c
@@ -88,19 +88,19 @@ rblapack_cgelss(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -110,7 +110,7 @@ rblapack_cgelss(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgelsx.c b/ext/cgelsx.c
index 40d45b0..9872865 100644
--- a/ext/cgelsx.c
+++ b/ext/cgelsx.c
@@ -89,7 +89,7 @@ rblapack_cgelsx(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_cgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_cgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cgelsy.c b/ext/cgelsy.c
index cdf9961..c18ef84 100644
--- a/ext/cgelsy.c
+++ b/ext/cgelsy.c
@@ -100,13 +100,13 @@ rblapack_cgelsy(int argc, VALUE *argv, VALUE self){
   rcond = (real)NUM2DBL(rblapack_rcond);
   ldb = MAX(m,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -116,7 +116,7 @@ rblapack_cgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -132,7 +132,7 @@ rblapack_cgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cgeql2.c b/ext/cgeql2.c
index 18a60a4..32a4e18 100644
--- a/ext/cgeql2.c
+++ b/ext/cgeql2.c
@@ -54,13 +54,13 @@ rblapack_cgeql2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeqlf.c b/ext/cgeqlf.c
index e2855e7..ae20741 100644
--- a/ext/cgeqlf.c
+++ b/ext/cgeqlf.c
@@ -65,19 +65,19 @@ rblapack_cgeqlf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeqp3.c b/ext/cgeqp3.c
index e1148a5..c9f099a 100644
--- a/ext/cgeqp3.c
+++ b/ext/cgeqp3.c
@@ -80,19 +80,19 @@ rblapack_cgeqp3(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_cgeqp3(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cgeqpf.c b/ext/cgeqpf.c
index 6c6ecb3..97bf0c0 100644
--- a/ext/cgeqpf.c
+++ b/ext/cgeqpf.c
@@ -69,13 +69,13 @@ rblapack_cgeqpf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -85,7 +85,7 @@ rblapack_cgeqpf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cgeqr2.c b/ext/cgeqr2.c
index 61b97e3..4f48429 100644
--- a/ext/cgeqr2.c
+++ b/ext/cgeqr2.c
@@ -54,13 +54,13 @@ rblapack_cgeqr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeqr2p.c b/ext/cgeqr2p.c
index 4c63493..070b996 100644
--- a/ext/cgeqr2p.c
+++ b/ext/cgeqr2p.c
@@ -54,13 +54,13 @@ rblapack_cgeqr2p(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeqrf.c b/ext/cgeqrf.c
index 1d6357e..ac78d56 100644
--- a/ext/cgeqrf.c
+++ b/ext/cgeqrf.c
@@ -65,19 +65,19 @@ rblapack_cgeqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgeqrfp.c b/ext/cgeqrfp.c
index 3da5245..680c2a4 100644
--- a/ext/cgeqrfp.c
+++ b/ext/cgeqrfp.c
@@ -65,19 +65,19 @@ rblapack_cgeqrfp(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgerfs.c b/ext/cgerfs.c
index 236112a..38b195a 100644
--- a/ext/cgerfs.c
+++ b/ext/cgerfs.c
@@ -111,19 +111,19 @@ rblapack_cgerfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgerfsx.c b/ext/cgerfsx.c
index 611a1e3..e78ba69 100644
--- a/ext/cgerfsx.c
+++ b/ext/cgerfsx.c
@@ -159,27 +159,27 @@ rblapack_cgerfsx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -189,7 +189,7 @@ rblapack_cgerfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgerq2.c b/ext/cgerq2.c
index 824b8d3..f376b95 100644
--- a/ext/cgerq2.c
+++ b/ext/cgerq2.c
@@ -52,13 +52,13 @@ rblapack_cgerq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgerqf.c b/ext/cgerqf.c
index a4a1e27..8c2e10e 100644
--- a/ext/cgerqf.c
+++ b/ext/cgerqf.c
@@ -65,19 +65,19 @@ rblapack_cgerqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgesc2.c b/ext/cgesc2.c
index 376d1e1..300f548 100644
--- a/ext/cgesc2.c
+++ b/ext/cgesc2.c
@@ -83,7 +83,7 @@ rblapack_cgesc2(int argc, VALUE *argv, VALUE self){
     rblapack_jpiv = na_change_type(rblapack_jpiv, NA_LINT);
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cgesdd.c b/ext/cgesdd.c
index f357f76..2da54d4 100644
--- a/ext/cgesdd.c
+++ b/ext/cgesdd.c
@@ -79,33 +79,33 @@ rblapack_cgesdd(int argc, VALUE *argv, VALUE self){
   ldu = (lsame_(&jobz,"S") || lsame_(&jobz,"A") || (lsame_(&jobz,"O") && m < n)) ? m : 1;
   ucol = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m < n)))) ? m : lsame_(&jobz,"S") ? MIN(m,n) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = ucol;
     rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgesv.c b/ext/cgesv.c
index 22687ca..0dc7a11 100644
--- a/ext/cgesv.c
+++ b/ext/cgesv.c
@@ -65,13 +65,13 @@ rblapack_cgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_cgesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgesvd.c b/ext/cgesvd.c
index adc7ff1..b0b69ec 100644
--- a/ext/cgesvd.c
+++ b/ext/cgesvd.c
@@ -80,33 +80,33 @@ rblapack_cgesvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = lsame_(&jobu,"A") ? m : lsame_(&jobu,"S") ? MIN(m,n) : 0;
     rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = MAX(n, MIN(m,n));
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgesvx.c b/ext/cgesvx.c
index f34aa73..5dee239 100644
--- a/ext/cgesvx.c
+++ b/ext/cgesvx.c
@@ -168,32 +168,32 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
     af = NA_PTR_TYPE(rblapack_af, complex*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -237,7 +237,7 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -248,7 +248,7 @@ rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgesvxx.c b/ext/cgesvxx.c
index 60c811c..db68372 100644
--- a/ext/cgesvxx.c
+++ b/ext/cgesvxx.c
@@ -165,34 +165,34 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, real*);
   ldx = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -202,7 +202,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -212,7 +212,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -221,7 +221,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -230,7 +230,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -239,7 +239,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_cgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cgetc2.c b/ext/cgetc2.c
index 3e65a29..791cf27 100644
--- a/ext/cgetc2.c
+++ b/ext/cgetc2.c
@@ -51,19 +51,19 @@ rblapack_cgetc2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgetf2.c b/ext/cgetf2.c
index 7ff469c..cab95f5 100644
--- a/ext/cgetf2.c
+++ b/ext/cgetf2.c
@@ -53,13 +53,13 @@ rblapack_cgetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgetrf.c b/ext/cgetrf.c
index db9b6ee..2cc7ade 100644
--- a/ext/cgetrf.c
+++ b/ext/cgetrf.c
@@ -53,13 +53,13 @@ rblapack_cgetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgetri.c b/ext/cgetri.c
index b9b517e..9834dec 100644
--- a/ext/cgetri.c
+++ b/ext/cgetri.c
@@ -71,13 +71,13 @@ rblapack_cgetri(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgetrs.c b/ext/cgetrs.c
index 5f94caa..876e95b 100644
--- a/ext/cgetrs.c
+++ b/ext/cgetrs.c
@@ -77,7 +77,7 @@ rblapack_cgetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggbak.c b/ext/cggbak.c
index 062ab35..bc1b476 100644
--- a/ext/cggbak.c
+++ b/ext/cggbak.c
@@ -87,7 +87,7 @@ rblapack_cggbak(int argc, VALUE *argv, VALUE self){
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggbal.c b/ext/cggbal.c
index b440212..11bcbaa 100644
--- a/ext/cggbal.c
+++ b/ext/cggbal.c
@@ -76,19 +76,19 @@ rblapack_cggbal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_cggbal(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgges.c b/ext/cgges.c
index 969ba3a..c338db7 100644
--- a/ext/cgges.c
+++ b/ext/cgges.c
@@ -119,39 +119,39 @@ rblapack_cgges(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -161,7 +161,7 @@ rblapack_cgges(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggesx.c b/ext/cggesx.c
index ddfb575..aba469f 100644
--- a/ext/cggesx.c
+++ b/ext/cggesx.c
@@ -139,57 +139,57 @@ rblapack_cggesx(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -199,7 +199,7 @@ rblapack_cggesx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggev.c b/ext/cggev.c
index c373beb..586dfb4 100644
--- a/ext/cggev.c
+++ b/ext/cggev.c
@@ -97,45 +97,45 @@ rblapack_cggev(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 8*n;
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_cggev(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggevx.c b/ext/cggevx.c
index 18d8db2..8db65fc 100644
--- a/ext/cggevx.c
+++ b/ext/cggevx.c
@@ -124,63 +124,63 @@ rblapack_cggevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -190,7 +190,7 @@ rblapack_cggevx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggglm.c b/ext/cggglm.c
index 599388c..4578a70 100644
--- a/ext/cggglm.c
+++ b/ext/cggglm.c
@@ -93,25 +93,25 @@ rblapack_cggglm(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_x = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_y = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_cggglm(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_cggglm(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cgghrd.c b/ext/cgghrd.c
index b85a7ab..d63c49d 100644
--- a/ext/cgghrd.c
+++ b/ext/cgghrd.c
@@ -111,7 +111,7 @@ rblapack_cgghrd(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_cgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_cgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -141,7 +141,7 @@ rblapack_cgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgglse.c b/ext/cgglse.c
index fd2c957..72489f9 100644
--- a/ext/cgglse.c
+++ b/ext/cgglse.c
@@ -105,19 +105,19 @@ rblapack_cgglse(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_cgglse(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_cgglse(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_cgglse(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_d_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cggqrf.c b/ext/cggqrf.c
index 034b9e6..3819f77 100644
--- a/ext/cggqrf.c
+++ b/ext/cggqrf.c
@@ -83,25 +83,25 @@ rblapack_cggqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,m);
     rblapack_taua = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,p);
     rblapack_taub = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_cggqrf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggrqf.c b/ext/cggrqf.c
index 8c4005f..05e045f 100644
--- a/ext/cggrqf.c
+++ b/ext/cggrqf.c
@@ -87,25 +87,25 @@ rblapack_cggrqf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taua = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(p,n);
     rblapack_taub = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_cggrqf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggsvd.c b/ext/cggsvd.c
index cbfb9dc..185adaf 100644
--- a/ext/cggsvd.c
+++ b/ext/cggsvd.c
@@ -103,46 +103,46 @@ rblapack_cggsvd(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -152,7 +152,7 @@ rblapack_cggsvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cggsvp.c b/ext/cggsvp.c
index 854af91..7743e58 100644
--- a/ext/cggsvp.c
+++ b/ext/cggsvp.c
@@ -107,28 +107,28 @@ rblapack_cggsvp(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_cggsvp(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgtrfs.c b/ext/cgtrfs.c
index 15cb128..2dde390 100644
--- a/ext/cgtrfs.c
+++ b/ext/cgtrfs.c
@@ -167,19 +167,19 @@ rblapack_cgtrfs(int argc, VALUE *argv, VALUE self){
     rblapack_duf = na_change_type(rblapack_duf, NA_SCOMPLEX);
   duf = NA_PTR_TYPE(rblapack_duf, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgtsv.c b/ext/cgtsv.c
index e78456d..81ce970 100644
--- a/ext/cgtsv.c
+++ b/ext/cgtsv.c
@@ -89,7 +89,7 @@ rblapack_cgtsv(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_SCOMPLEX);
   du = NA_PTR_TYPE(rblapack_du, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_cgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_cgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_cgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_du = rblapack_du_out__;
   du = du_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgtsvx.c b/ext/cgtsvx.c
index 6678415..88e11c3 100644
--- a/ext/cgtsvx.c
+++ b/ext/cgtsvx.c
@@ -171,26 +171,26 @@ rblapack_cgtsvx(int argc, VALUE *argv, VALUE self){
     rblapack_dlf = na_change_type(rblapack_dlf, NA_SCOMPLEX);
   dlf = NA_PTR_TYPE(rblapack_dlf, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dlf_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -199,7 +199,7 @@ rblapack_cgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_dlf = rblapack_dlf_out__;
   dlf = dlf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -208,7 +208,7 @@ rblapack_cgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_duf_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -217,7 +217,7 @@ rblapack_cgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_duf = rblapack_duf_out__;
   duf = duf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_cgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_du2 = rblapack_du2_out__;
   du2 = du2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cgttrf.c b/ext/cgttrf.c
index bcd3a08..65999d5 100644
--- a/ext/cgttrf.c
+++ b/ext/cgttrf.c
@@ -77,19 +77,19 @@ rblapack_cgttrf(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_SCOMPLEX);
   du = NA_PTR_TYPE(rblapack_du, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   du2 = NA_PTR_TYPE(rblapack_du2, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_cgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_cgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cgttrs.c b/ext/cgttrs.c
index 3353b7e..b2cccd0 100644
--- a/ext/cgttrs.c
+++ b/ext/cgttrs.c
@@ -111,7 +111,7 @@ rblapack_cgttrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cgtts2.c b/ext/cgtts2.c
index 5b051af..221f8be 100644
--- a/ext/cgtts2.c
+++ b/ext/cgtts2.c
@@ -109,7 +109,7 @@ rblapack_cgtts2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbev.c b/ext/chbev.c
index dd52c4c..e5c7783 100644
--- a/ext/chbev.c
+++ b/ext/chbev.c
@@ -67,20 +67,20 @@ rblapack_chbev(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbevd.c b/ext/chbevd.c
index a0af886..f66ce7a 100644
--- a/ext/chbevd.c
+++ b/ext/chbevd.c
@@ -101,38 +101,38 @@ rblapack_chbevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbevx.c b/ext/chbevx.c
index 86d3c89..611121f 100644
--- a/ext/chbevx.c
+++ b/ext/chbevx.c
@@ -101,33 +101,33 @@ rblapack_chbevx(int argc, VALUE *argv, VALUE self){
   il = NUM2INT(rblapack_il);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbgst.c b/ext/chbgst.c
index daedb5d..5637d41 100644
--- a/ext/chbgst.c
+++ b/ext/chbgst.c
@@ -83,14 +83,14 @@ rblapack_chbgst(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldx = lsame_(&vect,"V") ? MAX(1,n) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbgv.c b/ext/chbgv.c
index ae310a0..086ec2c 100644
--- a/ext/chbgv.c
+++ b/ext/chbgv.c
@@ -87,20 +87,20 @@ rblapack_chbgv(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldz = lsame_(&jobz,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -110,7 +110,7 @@ rblapack_chbgv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbgvd.c b/ext/chbgvd.c
index 7dd1134..385b458 100644
--- a/ext/chbgvd.c
+++ b/ext/chbgvd.c
@@ -121,38 +121,38 @@ rblapack_chbgvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -162,7 +162,7 @@ rblapack_chbgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbgvx.c b/ext/chbgvx.c
index 0e902ba..25360f5 100644
--- a/ext/chbgvx.c
+++ b/ext/chbgvx.c
@@ -120,33 +120,33 @@ rblapack_chbgvx(int argc, VALUE *argv, VALUE self){
   vl = (real)NUM2DBL(rblapack_vl);
   ldq = 1 ? jobz = 'n' : MAX(1,n) ? jobz = 'v' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_chbgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chbtrd.c b/ext/chbtrd.c
index 314b890..079b2b4 100644
--- a/ext/chbtrd.c
+++ b/ext/chbtrd.c
@@ -80,19 +80,19 @@ rblapack_chbtrd(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_chbtrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cheequb.c b/ext/cheequb.c
index ab6d171..6552b4c 100644
--- a/ext/cheequb.c
+++ b/ext/cheequb.c
@@ -56,7 +56,7 @@ rblapack_cheequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cheev.c b/ext/cheev.c
index 76ded63..43d1fe9 100644
--- a/ext/cheev.c
+++ b/ext/cheev.c
@@ -70,19 +70,19 @@ rblapack_cheev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cheevd.c b/ext/cheevd.c
index 566161e..7de56b4 100644
--- a/ext/cheevd.c
+++ b/ext/cheevd.c
@@ -93,31 +93,31 @@ rblapack_cheevd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cheevr.c b/ext/cheevr.c
index 878ab55..c930bd9 100644
--- a/ext/cheevr.c
+++ b/ext/cheevr.c
@@ -126,44 +126,44 @@ rblapack_cheevr(int argc, VALUE *argv, VALUE self){
   }
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cheevx.c b/ext/cheevx.c
index 3e159fd..c3b45a2 100644
--- a/ext/cheevx.c
+++ b/ext/cheevx.c
@@ -104,32 +104,32 @@ rblapack_cheevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chegs2.c b/ext/chegs2.c
index 97f11b4..0a89feb 100644
--- a/ext/chegs2.c
+++ b/ext/chegs2.c
@@ -69,7 +69,7 @@ rblapack_chegs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chegst.c b/ext/chegst.c
index 624fb96..c9a017f 100644
--- a/ext/chegst.c
+++ b/ext/chegst.c
@@ -69,7 +69,7 @@ rblapack_chegst(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chegv.c b/ext/chegv.c
index 4789c62..c92ac73 100644
--- a/ext/chegv.c
+++ b/ext/chegv.c
@@ -90,19 +90,19 @@ rblapack_chegv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -112,7 +112,7 @@ rblapack_chegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chegvd.c b/ext/chegvd.c
index 2aad049..aaec438 100644
--- a/ext/chegvd.c
+++ b/ext/chegvd.c
@@ -113,31 +113,31 @@ rblapack_chegvd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_chegvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chegvx.c b/ext/chegvx.c
index b05c55f..ef3631d 100644
--- a/ext/chegvx.c
+++ b/ext/chegvx.c
@@ -124,32 +124,32 @@ rblapack_chegvx(int argc, VALUE *argv, VALUE self){
   vu = (real)NUM2DBL(rblapack_vu);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -159,7 +159,7 @@ rblapack_chegvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cherfs.c b/ext/cherfs.c
index 4105209..100ad8c 100644
--- a/ext/cherfs.c
+++ b/ext/cherfs.c
@@ -111,19 +111,19 @@ rblapack_cherfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cherfsx.c b/ext/cherfsx.c
index 66671ba..844a060 100644
--- a/ext/cherfsx.c
+++ b/ext/cherfsx.c
@@ -149,27 +149,27 @@ rblapack_cherfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_cherfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_cherfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/chesv.c b/ext/chesv.c
index 4e3f278..61e4f4b 100644
--- a/ext/chesv.c
+++ b/ext/chesv.c
@@ -75,19 +75,19 @@ rblapack_chesv(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   lwork = NUM2INT(rblapack_lwork);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -97,7 +97,7 @@ rblapack_chesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chesvx.c b/ext/chesvx.c
index 7eac5b0..46b1e2a 100644
--- a/ext/chesvx.c
+++ b/ext/chesvx.c
@@ -120,32 +120,32 @@ rblapack_chesvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_chesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/chesvxx.c b/ext/chesvxx.c
index a85f230..fcd8417 100644
--- a/ext/chesvxx.c
+++ b/ext/chesvxx.c
@@ -151,34 +151,34 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_chesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/chetd2.c b/ext/chetd2.c
index a84e76d..88d4568 100644
--- a/ext/chetd2.c
+++ b/ext/chetd2.c
@@ -57,25 +57,25 @@ rblapack_chetd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetf2.c b/ext/chetf2.c
index e6742fb..90c1861 100644
--- a/ext/chetf2.c
+++ b/ext/chetf2.c
@@ -53,13 +53,13 @@ rblapack_chetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetrd.c b/ext/chetrd.c
index 3f83bd5..742047d 100644
--- a/ext/chetrd.c
+++ b/ext/chetrd.c
@@ -63,31 +63,31 @@ rblapack_chetrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetrf.c b/ext/chetrf.c
index 00044a0..1160598 100644
--- a/ext/chetrf.c
+++ b/ext/chetrf.c
@@ -59,19 +59,19 @@ rblapack_chetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetri.c b/ext/chetri.c
index 8f75099..05e551d 100644
--- a/ext/chetri.c
+++ b/ext/chetri.c
@@ -64,7 +64,7 @@ rblapack_chetri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetrs.c b/ext/chetrs.c
index e869bf8..329e451 100644
--- a/ext/chetrs.c
+++ b/ext/chetrs.c
@@ -77,7 +77,7 @@ rblapack_chetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chetrs2.c b/ext/chetrs2.c
index d06221d..efa026e 100644
--- a/ext/chetrs2.c
+++ b/ext/chetrs2.c
@@ -78,7 +78,7 @@ rblapack_chetrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chfrk.c b/ext/chfrk.c
index 6840f59..ba43cae 100644
--- a/ext/chfrk.c
+++ b/ext/chfrk.c
@@ -85,7 +85,7 @@ rblapack_chfrk(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldc;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chgeqz.c b/ext/chgeqz.c
index 729ad11..97dd4ba 100644
--- a/ext/chgeqz.c
+++ b/ext/chgeqz.c
@@ -132,25 +132,25 @@ rblapack_chgeqz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_chgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -170,7 +170,7 @@ rblapack_chgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -180,7 +180,7 @@ rblapack_chgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chpev.c b/ext/chpev.c
index 645dba6..951d45b 100644
--- a/ext/chpev.c
+++ b/ext/chpev.c
@@ -63,20 +63,20 @@ rblapack_chpev(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpevd.c b/ext/chpevd.c
index 42e0743..4908ae3 100644
--- a/ext/chpevd.c
+++ b/ext/chpevd.c
@@ -97,38 +97,38 @@ rblapack_chpevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpevx.c b/ext/chpevx.c
index e4a47f3..c78bc31 100644
--- a/ext/chpevx.c
+++ b/ext/chpevx.c
@@ -93,26 +93,26 @@ rblapack_chpevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpgst.c b/ext/chpgst.c
index aef359f..523c87e 100644
--- a/ext/chpgst.c
+++ b/ext/chpgst.c
@@ -69,7 +69,7 @@ rblapack_chpgst(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpgv.c b/ext/chpgv.c
index 88e47d1..ad01c58 100644
--- a/ext/chpgv.c
+++ b/ext/chpgv.c
@@ -81,20 +81,20 @@ rblapack_chpgv(int argc, VALUE *argv, VALUE self){
   bp = NA_PTR_TYPE(rblapack_bp, complex*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -103,7 +103,7 @@ rblapack_chpgv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpgvd.c b/ext/chpgvd.c
index 83a96e2..197de10 100644
--- a/ext/chpgvd.c
+++ b/ext/chpgvd.c
@@ -113,26 +113,26 @@ rblapack_chpgvd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_chpgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chpgvx.c b/ext/chpgvx.c
index ecf0928..52c43aa 100644
--- a/ext/chpgvx.c
+++ b/ext/chpgvx.c
@@ -110,26 +110,26 @@ rblapack_chpgvx(int argc, VALUE *argv, VALUE self){
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   vu = (real)NUM2DBL(rblapack_vu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : n;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_chpgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chprfs.c b/ext/chprfs.c
index 4b15603..99fdf52 100644
--- a/ext/chprfs.c
+++ b/ext/chprfs.c
@@ -107,19 +107,19 @@ rblapack_chprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chpsv.c b/ext/chpsv.c
index 536b99c..1c540e7 100644
--- a/ext/chpsv.c
+++ b/ext/chpsv.c
@@ -69,13 +69,13 @@ rblapack_chpsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_chpsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chpsvx.c b/ext/chpsvx.c
index c766b30..6a41302 100644
--- a/ext/chpsvx.c
+++ b/ext/chpsvx.c
@@ -105,26 +105,26 @@ rblapack_chpsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_chpsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/chptrd.c b/ext/chptrd.c
index c53a7f6..d9c6ef2 100644
--- a/ext/chptrd.c
+++ b/ext/chptrd.c
@@ -57,25 +57,25 @@ rblapack_chptrd(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chptrf.c b/ext/chptrf.c
index 9c71851..684371b 100644
--- a/ext/chptrf.c
+++ b/ext/chptrf.c
@@ -53,13 +53,13 @@ rblapack_chptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chptri.c b/ext/chptri.c
index 4ea30a9..48c261e 100644
--- a/ext/chptri.c
+++ b/ext/chptri.c
@@ -62,7 +62,7 @@ rblapack_chptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/chptrs.c b/ext/chptrs.c
index 63d524b..7220956 100644
--- a/ext/chptrs.c
+++ b/ext/chptrs.c
@@ -75,7 +75,7 @@ rblapack_chptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chsein.c b/ext/chsein.c
index 97eb310..e59e373 100644
--- a/ext/chsein.c
+++ b/ext/chsein.c
@@ -123,19 +123,19 @@ rblapack_chsein(int argc, VALUE *argv, VALUE self){
     rblapack_vr = na_change_type(rblapack_vr, NA_SCOMPLEX);
   vr = NA_PTR_TYPE(rblapack_vr, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifaill = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifaill = NA_PTR_TYPE(rblapack_ifaill, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifailr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifailr = NA_PTR_TYPE(rblapack_ifailr, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -144,7 +144,7 @@ rblapack_chsein(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_chsein(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/chseqr.c b/ext/chseqr.c
index 2e287bc..d0a2980 100644
--- a/ext/chseqr.c
+++ b/ext/chseqr.c
@@ -97,19 +97,19 @@ rblapack_chseqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -119,7 +119,7 @@ rblapack_chseqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compz,"N") ? 0 : ldz;
     shape[1] = lsame_(&compz,"N") ? 0 : n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cla_gbamv.c b/ext/cla_gbamv.c
index 052c95f..214fe70 100644
--- a/ext/cla_gbamv.c
+++ b/ext/cla_gbamv.c
@@ -103,7 +103,7 @@ rblapack_cla_gbamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cla_gbrfsx_extended.c b/ext/cla_gbrfsx_extended.c
index 148ed11..6d731a2 100644
--- a/ext/cla_gbrfsx_extended.c
+++ b/ext/cla_gbrfsx_extended.c
@@ -243,13 +243,13 @@ rblapack_cla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   ldab = lda = MAX(1,n);
   ldafb = ldaf = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -259,7 +259,7 @@ rblapack_cla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -269,7 +269,7 @@ rblapack_cla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/cla_geamv.c b/ext/cla_geamv.c
index 59d525b..78fc0d3 100644
--- a/ext/cla_geamv.c
+++ b/ext/cla_geamv.c
@@ -93,7 +93,7 @@ rblapack_cla_geamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cla_gerfsx_extended.c b/ext/cla_gerfsx_extended.c
index 34ad75e..9e4c1c0 100644
--- a/ext/cla_gerfsx_extended.c
+++ b/ext/cla_gerfsx_extended.c
@@ -229,13 +229,13 @@ rblapack_cla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, complex*);
   rcond = (real)NUM2DBL(rblapack_rcond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_cla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_n_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_cla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_errs_n = rblapack_errs_n_out__;
   errs_n = errs_n_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/cla_heamv.c b/ext/cla_heamv.c
index 89e66ac..6b539bf 100644
--- a/ext/cla_heamv.c
+++ b/ext/cla_heamv.c
@@ -92,7 +92,7 @@ rblapack_cla_heamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cla_herfsx_extended.c b/ext/cla_herfsx_extended.c
index ca807a6..476e424 100644
--- a/ext/cla_herfsx_extended.c
+++ b/ext/cla_herfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_cla_herfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_SCOMPLEX);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_cla_herfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_cla_herfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/cla_lin_berr.c b/ext/cla_lin_berr.c
index 62a04e6..e26cd4a 100644
--- a/ext/cla_lin_berr.c
+++ b/ext/cla_lin_berr.c
@@ -63,7 +63,7 @@ rblapack_cla_lin_berr(int argc, VALUE *argv, VALUE self){
     rblapack_res = na_change_type(rblapack_res, NA_DFLOAT);
   res = NA_PTR_TYPE(rblapack_res, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cla_porfsx_extended.c b/ext/cla_porfsx_extended.c
index cd3351b..5f94668 100644
--- a/ext/cla_porfsx_extended.c
+++ b/ext/cla_porfsx_extended.c
@@ -219,13 +219,13 @@ rblapack_cla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   y = NA_PTR_TYPE(rblapack_y, complex*);
   rcond = (real)NUM2DBL(rblapack_rcond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_cla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_cla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/cla_syamv.c b/ext/cla_syamv.c
index 5d0830a..1bca6ff 100644
--- a/ext/cla_syamv.c
+++ b/ext/cla_syamv.c
@@ -91,7 +91,7 @@ rblapack_cla_syamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cla_syrfsx_extended.c b/ext/cla_syrfsx_extended.c
index 4fb9a33..3772272 100644
--- a/ext/cla_syrfsx_extended.c
+++ b/ext/cla_syrfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_cla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_SCOMPLEX);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_cla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_cla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/cla_wwaddw.c b/ext/cla_wwaddw.c
index 0710444..beb398e 100644
--- a/ext/cla_wwaddw.c
+++ b/ext/cla_wwaddw.c
@@ -69,7 +69,7 @@ rblapack_cla_wwaddw(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_cla_wwaddw(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clabrd.c b/ext/clabrd.c
index 6a0eaeb..f8c11db 100644
--- a/ext/clabrd.c
+++ b/ext/clabrd.c
@@ -69,45 +69,45 @@ rblapack_clabrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldx = MAX(1,m);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tauq = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_taup = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = MAX(1,nb);
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clacgv.c b/ext/clacgv.c
index d6b3200..2b327de 100644
--- a/ext/clacgv.c
+++ b/ext/clacgv.c
@@ -51,7 +51,7 @@ rblapack_clacgv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clacn2.c b/ext/clacn2.c
index d0a1218..988dc0e 100644
--- a/ext/clacn2.c
+++ b/ext/clacn2.c
@@ -66,7 +66,7 @@ rblapack_clacn2(int argc, VALUE *argv, VALUE self){
     rblapack_isave = na_change_type(rblapack_isave, NA_LINT);
   isave = NA_PTR_TYPE(rblapack_isave, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -75,7 +75,7 @@ rblapack_clacn2(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3;
     rblapack_isave_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/clacon.c b/ext/clacon.c
index a374bf9..65aaa72 100644
--- a/ext/clacon.c
+++ b/ext/clacon.c
@@ -52,7 +52,7 @@ rblapack_clacon(int argc, VALUE *argv, VALUE self){
   kase = NUM2INT(rblapack_kase);
   est = (real)NUM2DBL(rblapack_est);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clacp2.c b/ext/clacp2.c
index 104d554..cbcfc6f 100644
--- a/ext/clacp2.c
+++ b/ext/clacp2.c
@@ -55,7 +55,7 @@ rblapack_clacp2(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clacpy.c b/ext/clacpy.c
index 96d1170..cc9f2ca 100644
--- a/ext/clacpy.c
+++ b/ext/clacpy.c
@@ -55,7 +55,7 @@ rblapack_clacpy(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clacrm.c b/ext/clacrm.c
index b46b32b..4f2d618 100644
--- a/ext/clacrm.c
+++ b/ext/clacrm.c
@@ -66,7 +66,7 @@ rblapack_clacrm(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   ldc = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clacrt.c b/ext/clacrt.c
index 36b2896..85b1e7f 100644
--- a/ext/clacrt.c
+++ b/ext/clacrt.c
@@ -75,7 +75,7 @@ rblapack_clacrt(int argc, VALUE *argv, VALUE self){
   s.i = (real)NUM2DBL(rb_funcall(rblapack_s, rb_intern("imag"), 0));
   incy = NUM2INT(rblapack_incy);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cx_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_clacrt(int argc, VALUE *argv, VALUE self){
   rblapack_cx = rblapack_cx_out__;
   cx = cx_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cy_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/claed0.c b/ext/claed0.c
index 70bc248..0bf8d7d 100644
--- a/ext/claed0.c
+++ b/ext/claed0.c
@@ -84,7 +84,7 @@ rblapack_claed0(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -93,7 +93,7 @@ rblapack_claed0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_claed0(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claed7.c b/ext/claed7.c
index 7d9286e..e7eb618 100644
--- a/ext/claed7.c
+++ b/ext/claed7.c
@@ -182,13 +182,13 @@ rblapack_claed7(int argc, VALUE *argv, VALUE self){
     rblapack_perm = na_change_type(rblapack_perm, NA_LINT);
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -197,7 +197,7 @@ rblapack_claed7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -207,7 +207,7 @@ rblapack_claed7(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n,2)+1;
     rblapack_qstore_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_claed7(int argc, VALUE *argv, VALUE self){
   rblapack_qstore = rblapack_qstore_out__;
   qstore = qstore_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n+2;
     rblapack_qptr_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/claed8.c b/ext/claed8.c
index 8e8e903..172d749 100644
--- a/ext/claed8.c
+++ b/ext/claed8.c
@@ -117,46 +117,46 @@ rblapack_claed8(int argc, VALUE *argv, VALUE self){
   rho = (real)NUM2DBL(rblapack_rho);
   ldq2 = MAX( 1, n );
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq2;
     shape[1] = n;
     rblapack_q2 = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givnum = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -166,7 +166,7 @@ rblapack_claed8(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/claein.c b/ext/claein.c
index 06a2226..d0d75fe 100644
--- a/ext/claein.c
+++ b/ext/claein.c
@@ -84,7 +84,7 @@ rblapack_claein(int argc, VALUE *argv, VALUE self){
   w.i = (real)NUM2DBL(rb_funcall(rblapack_w, rb_intern("imag"), 0));
   ldb = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clag2z.c b/ext/clag2z.c
index e232875..ff310f2 100644
--- a/ext/clag2z.c
+++ b/ext/clag2z.c
@@ -53,7 +53,7 @@ rblapack_clag2z(int argc, VALUE *argv, VALUE self){
     rblapack_sa = na_change_type(rblapack_sa, NA_SCOMPLEX);
   sa = NA_PTR_TYPE(rblapack_sa, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clagtm.c b/ext/clagtm.c
index b7d04e7..aa4646c 100644
--- a/ext/clagtm.c
+++ b/ext/clagtm.c
@@ -107,7 +107,7 @@ rblapack_clagtm(int argc, VALUE *argv, VALUE self){
   dl = NA_PTR_TYPE(rblapack_dl, complex*);
   beta = (real)NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clahef.c b/ext/clahef.c
index d5a2c70..a2effe2 100644
--- a/ext/clahef.c
+++ b/ext/clahef.c
@@ -62,13 +62,13 @@ rblapack_clahef(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clahqr.c b/ext/clahqr.c
index 70606a3..aa732ec 100644
--- a/ext/clahqr.c
+++ b/ext/clahqr.c
@@ -93,13 +93,13 @@ rblapack_clahqr(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_clahqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? n : 0;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clahr2.c b/ext/clahr2.c
index 7977029..7e51c87 100644
--- a/ext/clahr2.c
+++ b/ext/clahr2.c
@@ -67,27 +67,27 @@ rblapack_clahr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clahrd.c b/ext/clahrd.c
index bbb48cf..21bd19b 100644
--- a/ext/clahrd.c
+++ b/ext/clahrd.c
@@ -67,27 +67,27 @@ rblapack_clahrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clals0.c b/ext/clals0.c
index 8850a2e..582225a 100644
--- a/ext/clals0.c
+++ b/ext/clals0.c
@@ -171,7 +171,7 @@ rblapack_clals0(int argc, VALUE *argv, VALUE self){
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   ldbx = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clalsa.c b/ext/clalsa.c
index 098a76f..b38fc64 100644
--- a/ext/clalsa.c
+++ b/ext/clalsa.c
@@ -233,14 +233,14 @@ rblapack_clalsa(int argc, VALUE *argv, VALUE self){
     rblapack_givnum = na_change_type(rblapack_givnum, NA_SFLOAT);
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbx;
     shape[1] = nrhs;
     rblapack_bx = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   bx = NA_PTR_TYPE(rblapack_bx, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clalsd.c b/ext/clalsd.c
index 9028666..fec6953 100644
--- a/ext/clalsd.c
+++ b/ext/clalsd.c
@@ -94,7 +94,7 @@ rblapack_clalsd(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   nlvl = ( (int)( log(((double)n)/(smlsiz+1))/log(2.0) ) ) + 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -103,7 +103,7 @@ rblapack_clalsd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -112,7 +112,7 @@ rblapack_clalsd(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clapll.c b/ext/clapll.c
index 3540194..f201322 100644
--- a/ext/clapll.c
+++ b/ext/clapll.c
@@ -71,7 +71,7 @@ rblapack_clapll(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -80,7 +80,7 @@ rblapack_clapll(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clapmr.c b/ext/clapmr.c
index dec975f..ed3f347 100644
--- a/ext/clapmr.c
+++ b/ext/clapmr.c
@@ -63,7 +63,7 @@ rblapack_clapmr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -73,7 +73,7 @@ rblapack_clapmr(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/clapmt.c b/ext/clapmt.c
index 995b33e..7643e6a 100644
--- a/ext/clapmt.c
+++ b/ext/clapmt.c
@@ -67,7 +67,7 @@ rblapack_clapmt(int argc, VALUE *argv, VALUE self){
     rblapack_k = na_change_type(rblapack_k, NA_LINT);
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_clapmt(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/claqgb.c b/ext/claqgb.c
index 340ffe5..a2bcd32 100644
--- a/ext/claqgb.c
+++ b/ext/claqgb.c
@@ -91,7 +91,7 @@ rblapack_claqgb(int argc, VALUE *argv, VALUE self){
   r = NA_PTR_TYPE(rblapack_r, real*);
   amax = (real)NUM2DBL(rblapack_amax);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqge.c b/ext/claqge.c
index b88ec3b..363e2a0 100644
--- a/ext/claqge.c
+++ b/ext/claqge.c
@@ -83,7 +83,7 @@ rblapack_claqge(int argc, VALUE *argv, VALUE self){
   amax = (real)NUM2DBL(rblapack_amax);
   rowcnd = (real)NUM2DBL(rblapack_rowcnd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqhb.c b/ext/claqhb.c
index 917327f..20fbde8 100644
--- a/ext/claqhb.c
+++ b/ext/claqhb.c
@@ -65,13 +65,13 @@ rblapack_claqhb(int argc, VALUE *argv, VALUE self){
   kd = NUM2INT(rblapack_kd);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqhe.c b/ext/claqhe.c
index 65e569e..f24424c 100644
--- a/ext/claqhe.c
+++ b/ext/claqhe.c
@@ -71,7 +71,7 @@ rblapack_claqhe(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqhp.c b/ext/claqhp.c
index e131c03..81ca9b0 100644
--- a/ext/claqhp.c
+++ b/ext/claqhp.c
@@ -69,7 +69,7 @@ rblapack_claqhp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/claqp2.c b/ext/claqp2.c
index 67d89f4..97753d7 100644
--- a/ext/claqp2.c
+++ b/ext/claqp2.c
@@ -98,13 +98,13 @@ rblapack_claqp2(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -114,7 +114,7 @@ rblapack_claqp2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -123,7 +123,7 @@ rblapack_claqp2(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -132,7 +132,7 @@ rblapack_claqp2(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/claqps.c b/ext/claqps.c
index 459f3c9..778f110 100644
--- a/ext/claqps.c
+++ b/ext/claqps.c
@@ -130,13 +130,13 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   f = NA_PTR_TYPE(rblapack_f, complex*);
   kb = nb;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = kb;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -155,7 +155,7 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -164,7 +164,7 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn2 = rblapack_vn2_out__;
   vn2 = vn2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nb;
     rblapack_auxv_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -182,7 +182,7 @@ rblapack_claqps(int argc, VALUE *argv, VALUE self){
   rblapack_auxv = rblapack_auxv_out__;
   auxv = auxv_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = nb;
     rblapack_f_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqr0.c b/ext/claqr0.c
index 9592a2c..70f6a21 100644
--- a/ext/claqr0.c
+++ b/ext/claqr0.c
@@ -97,19 +97,19 @@ rblapack_claqr0(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -119,7 +119,7 @@ rblapack_claqr0(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqr1.c b/ext/claqr1.c
index 2da0d08..325a2ab 100644
--- a/ext/claqr1.c
+++ b/ext/claqr1.c
@@ -55,7 +55,7 @@ rblapack_claqr1(int argc, VALUE *argv, VALUE self){
   s1.r = (real)NUM2DBL(rb_funcall(rblapack_s1, rb_intern("real"), 0));
   s1.i = (real)NUM2DBL(rb_funcall(rblapack_s1, rb_intern("imag"), 0));
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/claqr2.c b/ext/claqr2.c
index bb78f40..2f28e6b 100644
--- a/ext/claqr2.c
+++ b/ext/claqr2.c
@@ -123,13 +123,13 @@ rblapack_claqr2(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sh = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   sh = NA_PTR_TYPE(rblapack_sh, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -139,7 +139,7 @@ rblapack_claqr2(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqr3.c b/ext/claqr3.c
index d08172c..e7d89fa 100644
--- a/ext/claqr3.c
+++ b/ext/claqr3.c
@@ -123,13 +123,13 @@ rblapack_claqr3(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sh = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   sh = NA_PTR_TYPE(rblapack_sh, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -139,7 +139,7 @@ rblapack_claqr3(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqr4.c b/ext/claqr4.c
index 9251422..77775fd 100644
--- a/ext/claqr4.c
+++ b/ext/claqr4.c
@@ -97,19 +97,19 @@ rblapack_claqr4(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -119,7 +119,7 @@ rblapack_claqr4(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqr5.c b/ext/claqr5.c
index f1c4e54..95eb480 100644
--- a/ext/claqr5.c
+++ b/ext/claqr5.c
@@ -127,7 +127,7 @@ rblapack_claqr5(int argc, VALUE *argv, VALUE self){
   iloz = NUM2INT(rblapack_iloz);
   ldwv = nv;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_s_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -136,7 +136,7 @@ rblapack_claqr5(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_claqr5(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? ihiz : 0;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqsb.c b/ext/claqsb.c
index edd05f9..a6b85ad 100644
--- a/ext/claqsb.c
+++ b/ext/claqsb.c
@@ -75,7 +75,7 @@ rblapack_claqsb(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claqsp.c b/ext/claqsp.c
index d37d61a..75e0c16 100644
--- a/ext/claqsp.c
+++ b/ext/claqsp.c
@@ -69,7 +69,7 @@ rblapack_claqsp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/claqsy.c b/ext/claqsy.c
index 117944d..b52ed93 100644
--- a/ext/claqsy.c
+++ b/ext/claqsy.c
@@ -71,7 +71,7 @@ rblapack_claqsy(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clar1v.c b/ext/clar1v.c
index 6e0ddc4..867e717 100644
--- a/ext/clar1v.c
+++ b/ext/clar1v.c
@@ -134,13 +134,13 @@ rblapack_clar1v(int argc, VALUE *argv, VALUE self){
     rblapack_lld = na_change_type(rblapack_lld, NA_SFLOAT);
   lld = NA_PTR_TYPE(rblapack_lld, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clar2v.c b/ext/clar2v.c
index 8c8d961..e153d68 100644
--- a/ext/clar2v.c
+++ b/ext/clar2v.c
@@ -107,7 +107,7 @@ rblapack_clar2v(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_clar2v(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_clar2v(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clarcm.c b/ext/clarcm.c
index 14d58f7..9e7df62 100644
--- a/ext/clarcm.c
+++ b/ext/clarcm.c
@@ -62,7 +62,7 @@ rblapack_clarcm(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarf.c b/ext/clarf.c
index a972efe..dd05da9 100644
--- a/ext/clarf.c
+++ b/ext/clarf.c
@@ -75,7 +75,7 @@ rblapack_clarf(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarfb.c b/ext/clarfb.c
index 89a3e9b..2688a49 100644
--- a/ext/clarfb.c
+++ b/ext/clarfb.c
@@ -96,7 +96,7 @@ rblapack_clarfb(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, complex*);
   ldwork = MAX(1,n) ? side = 'l' : MAX(1,m) ? side = 'r' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarfg.c b/ext/clarfg.c
index 5866669..c59a2ac 100644
--- a/ext/clarfg.c
+++ b/ext/clarfg.c
@@ -58,7 +58,7 @@ rblapack_clarfg(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clarfgp.c b/ext/clarfgp.c
index 4671815..f14adee 100644
--- a/ext/clarfgp.c
+++ b/ext/clarfgp.c
@@ -58,7 +58,7 @@ rblapack_clarfgp(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clarft.c b/ext/clarft.c
index cc00bc4..adf5474 100644
--- a/ext/clarft.c
+++ b/ext/clarft.c
@@ -73,14 +73,14 @@ rblapack_clarft(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarfx.c b/ext/clarfx.c
index e9144cf..81a2ffa 100644
--- a/ext/clarfx.c
+++ b/ext/clarfx.c
@@ -67,7 +67,7 @@ rblapack_clarfx(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SCOMPLEX);
   c = NA_PTR_TYPE(rblapack_c, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clargv.c b/ext/clargv.c
index 6f5c12f..8f08303 100644
--- a/ext/clargv.c
+++ b/ext/clargv.c
@@ -75,13 +75,13 @@ rblapack_clargv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incc;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -90,7 +90,7 @@ rblapack_clargv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clarnv.c b/ext/clarnv.c
index a169d7b..fab35ca 100644
--- a/ext/clarnv.c
+++ b/ext/clarnv.c
@@ -53,13 +53,13 @@ rblapack_clarnv(int argc, VALUE *argv, VALUE self){
     rblapack_iseed = na_change_type(rblapack_iseed, NA_LINT);
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/clarrv.c b/ext/clarrv.c
index 27a999e..91b0aae 100644
--- a/ext/clarrv.c
+++ b/ext/clarrv.c
@@ -193,20 +193,20 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
     rblapack_gers = na_change_type(rblapack_gers, NA_SFLOAT);
   gers = NA_PTR_TYPE(rblapack_gers, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -215,7 +215,7 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_l_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -224,7 +224,7 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
   rblapack_l = rblapack_l_out__;
   l = l_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -233,7 +233,7 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -242,7 +242,7 @@ rblapack_clarrv(int argc, VALUE *argv, VALUE self){
   rblapack_werr = rblapack_werr_out__;
   werr = werr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/clarscl2.c b/ext/clarscl2.c
index ba8327c..e60acfe 100644
--- a/ext/clarscl2.c
+++ b/ext/clarscl2.c
@@ -57,7 +57,7 @@ rblapack_clarscl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clartv.c b/ext/clartv.c
index c564e70..826aa09 100644
--- a/ext/clartv.c
+++ b/ext/clartv.c
@@ -97,7 +97,7 @@ rblapack_clartv(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SCOMPLEX);
   s = NA_PTR_TYPE(rblapack_s, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_clartv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clarz.c b/ext/clarz.c
index 20093d1..ae646b9 100644
--- a/ext/clarz.c
+++ b/ext/clarz.c
@@ -79,7 +79,7 @@ rblapack_clarz(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarzb.c b/ext/clarzb.c
index a625474..e15bce2 100644
--- a/ext/clarzb.c
+++ b/ext/clarzb.c
@@ -100,7 +100,7 @@ rblapack_clarzb(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_SCOMPLEX);
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clarzt.c b/ext/clarzt.c
index 473d39f..018a3a6 100644
--- a/ext/clarzt.c
+++ b/ext/clarzt.c
@@ -73,14 +73,14 @@ rblapack_clarzt(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clascl.c b/ext/clascl.c
index 45dbd3b..ef16948 100644
--- a/ext/clascl.c
+++ b/ext/clascl.c
@@ -71,7 +71,7 @@ rblapack_clascl(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   cfrom = (real)NUM2DBL(rblapack_cfrom);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clascl2.c b/ext/clascl2.c
index d144f65..bcd5c93 100644
--- a/ext/clascl2.c
+++ b/ext/clascl2.c
@@ -57,7 +57,7 @@ rblapack_clascl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claset.c b/ext/claset.c
index cb6234f..25f125c 100644
--- a/ext/claset.c
+++ b/ext/claset.c
@@ -63,7 +63,7 @@ rblapack_claset(int argc, VALUE *argv, VALUE self){
   beta.r = (real)NUM2DBL(rb_funcall(rblapack_beta, rb_intern("real"), 0));
   beta.i = (real)NUM2DBL(rb_funcall(rblapack_beta, rb_intern("imag"), 0));
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clasr.c b/ext/clasr.c
index 7b5136f..b400bfa 100644
--- a/ext/clasr.c
+++ b/ext/clasr.c
@@ -85,7 +85,7 @@ rblapack_clasr(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/claswp.c b/ext/claswp.c
index f4ea4b7..87bd0ce 100644
--- a/ext/claswp.c
+++ b/ext/claswp.c
@@ -69,7 +69,7 @@ rblapack_claswp(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clasyf.c b/ext/clasyf.c
index f1cfebd..9e359d8 100644
--- a/ext/clasyf.c
+++ b/ext/clasyf.c
@@ -62,13 +62,13 @@ rblapack_clasyf(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clatbs.c b/ext/clatbs.c
index 293deee..fe39ca6 100644
--- a/ext/clatbs.c
+++ b/ext/clatbs.c
@@ -95,7 +95,7 @@ rblapack_clatbs(int argc, VALUE *argv, VALUE self){
     rblapack_cnorm = na_change_type(rblapack_cnorm, NA_SFLOAT);
   cnorm = NA_PTR_TYPE(rblapack_cnorm, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -104,7 +104,7 @@ rblapack_clatbs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/clatdf.c b/ext/clatdf.c
index caeac23..cb44570 100644
--- a/ext/clatdf.c
+++ b/ext/clatdf.c
@@ -93,7 +93,7 @@ rblapack_clatdf(int argc, VALUE *argv, VALUE self){
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   rdsum = (real)NUM2DBL(rblapack_rdsum);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/clatps.c b/ext/clatps.c
index 3b63b51..81ede04 100644
--- a/ext/clatps.c
+++ b/ext/clatps.c
@@ -89,7 +89,7 @@ rblapack_clatps(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_clatps(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/clatrd.c b/ext/clatrd.c
index d7d29e2..526c3fe 100644
--- a/ext/clatrd.c
+++ b/ext/clatrd.c
@@ -61,26 +61,26 @@ rblapack_clatrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldw;
     shape[1] = MAX(n,nb);
     rblapack_w = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clatrs.c b/ext/clatrs.c
index 4dae0fd..c0db1aa 100644
--- a/ext/clatrs.c
+++ b/ext/clatrs.c
@@ -91,7 +91,7 @@ rblapack_clatrs(int argc, VALUE *argv, VALUE self){
   x = NA_PTR_TYPE(rblapack_x, complex*);
   normin = StringValueCStr(rblapack_normin)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -100,7 +100,7 @@ rblapack_clatrs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/clatrz.c b/ext/clatrz.c
index f3b77b2..b556bce 100644
--- a/ext/clatrz.c
+++ b/ext/clatrz.c
@@ -54,13 +54,13 @@ rblapack_clatrz(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clatzm.c b/ext/clatzm.c
index 9f2f586..c38c9a8 100644
--- a/ext/clatzm.c
+++ b/ext/clatzm.c
@@ -95,7 +95,7 @@ rblapack_clatzm(int argc, VALUE *argv, VALUE self){
     rblapack_c1 = na_change_type(rblapack_c1, NA_SCOMPLEX);
   c1 = NA_PTR_TYPE(rblapack_c1, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0;
     rblapack_c1_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -105,7 +105,7 @@ rblapack_clatzm(int argc, VALUE *argv, VALUE self){
   rblapack_c1 = rblapack_c1_out__;
   c1 = c1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0;
     rblapack_c2_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clauu2.c b/ext/clauu2.c
index a966f33..d54cfc3 100644
--- a/ext/clauu2.c
+++ b/ext/clauu2.c
@@ -51,7 +51,7 @@ rblapack_clauu2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/clauum.c b/ext/clauum.c
index 76fd74c..b070af1 100644
--- a/ext/clauum.c
+++ b/ext/clauum.c
@@ -51,7 +51,7 @@ rblapack_clauum(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbequ.c b/ext/cpbequ.c
index a5ed160..c979f34 100644
--- a/ext/cpbequ.c
+++ b/ext/cpbequ.c
@@ -59,7 +59,7 @@ rblapack_cpbequ(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cpbrfs.c b/ext/cpbrfs.c
index 40402f0..d4bfd3f 100644
--- a/ext/cpbrfs.c
+++ b/ext/cpbrfs.c
@@ -103,19 +103,19 @@ rblapack_cpbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_afb = na_change_type(rblapack_afb, NA_SCOMPLEX);
   afb = NA_PTR_TYPE(rblapack_afb, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbstf.c b/ext/cpbstf.c
index 88130d4..36963ad 100644
--- a/ext/cpbstf.c
+++ b/ext/cpbstf.c
@@ -55,7 +55,7 @@ rblapack_cpbstf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbsv.c b/ext/cpbsv.c
index b2dd7c0..0dd21de 100644
--- a/ext/cpbsv.c
+++ b/ext/cpbsv.c
@@ -71,7 +71,7 @@ rblapack_cpbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_cpbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbsvx.c b/ext/cpbsvx.c
index c505a71..537b12f 100644
--- a/ext/cpbsvx.c
+++ b/ext/cpbsvx.c
@@ -121,26 +121,26 @@ rblapack_cpbsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_cpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_cpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -169,7 +169,7 @@ rblapack_cpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbtf2.c b/ext/cpbtf2.c
index 0da590b..bf96c10 100644
--- a/ext/cpbtf2.c
+++ b/ext/cpbtf2.c
@@ -55,7 +55,7 @@ rblapack_cpbtf2(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbtrf.c b/ext/cpbtrf.c
index de74107..1669417 100644
--- a/ext/cpbtrf.c
+++ b/ext/cpbtrf.c
@@ -55,7 +55,7 @@ rblapack_cpbtrf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpbtrs.c b/ext/cpbtrs.c
index 3d81825..ac67a1f 100644
--- a/ext/cpbtrs.c
+++ b/ext/cpbtrs.c
@@ -69,7 +69,7 @@ rblapack_cpbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpftrf.c b/ext/cpftrf.c
index 1fe4bab..518ac86 100644
--- a/ext/cpftrf.c
+++ b/ext/cpftrf.c
@@ -57,7 +57,7 @@ rblapack_cpftrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpftri.c b/ext/cpftri.c
index 0a5d473..ce34262 100644
--- a/ext/cpftri.c
+++ b/ext/cpftri.c
@@ -57,7 +57,7 @@ rblapack_cpftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpftrs.c b/ext/cpftrs.c
index b0a4dd9..655ee4b 100644
--- a/ext/cpftrs.c
+++ b/ext/cpftrs.c
@@ -71,7 +71,7 @@ rblapack_cpftrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpoequ.c b/ext/cpoequ.c
index 33d598f..69f5889 100644
--- a/ext/cpoequ.c
+++ b/ext/cpoequ.c
@@ -51,7 +51,7 @@ rblapack_cpoequ(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cpoequb.c b/ext/cpoequb.c
index d86f8cb..02f8cd0 100644
--- a/ext/cpoequb.c
+++ b/ext/cpoequb.c
@@ -51,7 +51,7 @@ rblapack_cpoequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cporfs.c b/ext/cporfs.c
index 52b8731..5480f3a 100644
--- a/ext/cporfs.c
+++ b/ext/cporfs.c
@@ -99,19 +99,19 @@ rblapack_cporfs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cporfsx.c b/ext/cporfsx.c
index 207fd89..0301751 100644
--- a/ext/cporfsx.c
+++ b/ext/cporfsx.c
@@ -137,27 +137,27 @@ rblapack_cporfsx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_SFLOAT);
   params = NA_PTR_TYPE(rblapack_params, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_cporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_cporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cposv.c b/ext/cposv.c
index 2c4045f..ee280cd 100644
--- a/ext/cposv.c
+++ b/ext/cposv.c
@@ -67,7 +67,7 @@ rblapack_cposv(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_cposv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cposvx.c b/ext/cposvx.c
index dd424e2..7854da0 100644
--- a/ext/cposvx.c
+++ b/ext/cposvx.c
@@ -117,26 +117,26 @@ rblapack_cposvx(int argc, VALUE *argv, VALUE self){
   af = NA_PTR_TYPE(rblapack_af, complex*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_cposvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_cposvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -165,7 +165,7 @@ rblapack_cposvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cposvxx.c b/ext/cposvxx.c
index 495844a..b9067e4 100644
--- a/ext/cposvxx.c
+++ b/ext/cposvxx.c
@@ -137,34 +137,34 @@ rblapack_cposvxx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_SFLOAT);
   params = NA_PTR_TYPE(rblapack_params, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -174,7 +174,7 @@ rblapack_cposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_cposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -193,7 +193,7 @@ rblapack_cposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_cposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cpotf2.c b/ext/cpotf2.c
index 48ec565..73e85e9 100644
--- a/ext/cpotf2.c
+++ b/ext/cpotf2.c
@@ -51,7 +51,7 @@ rblapack_cpotf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpotrf.c b/ext/cpotrf.c
index 5ad8f30..1e2cf23 100644
--- a/ext/cpotrf.c
+++ b/ext/cpotrf.c
@@ -51,7 +51,7 @@ rblapack_cpotrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpotri.c b/ext/cpotri.c
index e654869..294fe8e 100644
--- a/ext/cpotri.c
+++ b/ext/cpotri.c
@@ -51,7 +51,7 @@ rblapack_cpotri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpotrs.c b/ext/cpotrs.c
index 0795953..af22b91 100644
--- a/ext/cpotrs.c
+++ b/ext/cpotrs.c
@@ -65,7 +65,7 @@ rblapack_cpotrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cppequ.c b/ext/cppequ.c
index ffbaf2b..44cc8b9 100644
--- a/ext/cppequ.c
+++ b/ext/cppequ.c
@@ -55,7 +55,7 @@ rblapack_cppequ(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cpprfs.c b/ext/cpprfs.c
index f8f43a5..71cba53 100644
--- a/ext/cpprfs.c
+++ b/ext/cpprfs.c
@@ -97,19 +97,19 @@ rblapack_cpprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cppsv.c b/ext/cppsv.c
index 7451693..d1de1e5 100644
--- a/ext/cppsv.c
+++ b/ext/cppsv.c
@@ -69,7 +69,7 @@ rblapack_cppsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_cppsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cppsvx.c b/ext/cppsvx.c
index d7832e8..4fdc6e9 100644
--- a/ext/cppsvx.c
+++ b/ext/cppsvx.c
@@ -113,26 +113,26 @@ rblapack_cppsvx(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_cppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -150,7 +150,7 @@ rblapack_cppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -159,7 +159,7 @@ rblapack_cppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpptrf.c b/ext/cpptrf.c
index 084b220..950d403 100644
--- a/ext/cpptrf.c
+++ b/ext/cpptrf.c
@@ -53,7 +53,7 @@ rblapack_cpptrf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpptri.c b/ext/cpptri.c
index 2c18092..40b9e30 100644
--- a/ext/cpptri.c
+++ b/ext/cpptri.c
@@ -53,7 +53,7 @@ rblapack_cpptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpptrs.c b/ext/cpptrs.c
index d724fb2..17d8a19 100644
--- a/ext/cpptrs.c
+++ b/ext/cpptrs.c
@@ -67,7 +67,7 @@ rblapack_cpptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpstf2.c b/ext/cpstf2.c
index 340e2fa..6459855 100644
--- a/ext/cpstf2.c
+++ b/ext/cpstf2.c
@@ -60,13 +60,13 @@ rblapack_cpstf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpstrf.c b/ext/cpstrf.c
index 2d605a7..7d6d976 100644
--- a/ext/cpstrf.c
+++ b/ext/cpstrf.c
@@ -60,13 +60,13 @@ rblapack_cpstrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cpteqr.c b/ext/cpteqr.c
index 98734d9..27ce724 100644
--- a/ext/cpteqr.c
+++ b/ext/cpteqr.c
@@ -80,7 +80,7 @@ rblapack_cpteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_cpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_cpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cptrfs.c b/ext/cptrfs.c
index c9d7739..b773748 100644
--- a/ext/cptrfs.c
+++ b/ext/cptrfs.c
@@ -119,19 +119,19 @@ rblapack_cptrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cptsv.c b/ext/cptsv.c
index 5c80303..c93eb5a 100644
--- a/ext/cptsv.c
+++ b/ext/cptsv.c
@@ -75,7 +75,7 @@ rblapack_cptsv(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_cptsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -93,7 +93,7 @@ rblapack_cptsv(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cptsvx.c b/ext/cptsvx.c
index 8645773..d279f21 100644
--- a/ext/cptsvx.c
+++ b/ext/cptsvx.c
@@ -113,26 +113,26 @@ rblapack_cptsvx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, complex*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_cptsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_ef_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpttrf.c b/ext/cpttrf.c
index 0c1002f..9e5f09b 100644
--- a/ext/cpttrf.c
+++ b/ext/cpttrf.c
@@ -59,7 +59,7 @@ rblapack_cpttrf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_cpttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cpttrs.c b/ext/cpttrs.c
index e805342..0f93be5 100644
--- a/ext/cpttrs.c
+++ b/ext/cpttrs.c
@@ -75,7 +75,7 @@ rblapack_cpttrs(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cptts2.c b/ext/cptts2.c
index c20dee9..b4063ca 100644
--- a/ext/cptts2.c
+++ b/ext/cptts2.c
@@ -73,7 +73,7 @@ rblapack_cptts2(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/crot.c b/ext/crot.c
index 5ae0c0a..518b6ee 100644
--- a/ext/crot.c
+++ b/ext/crot.c
@@ -74,7 +74,7 @@ rblapack_crot(int argc, VALUE *argv, VALUE self){
   s.i = (real)NUM2DBL(rb_funcall(rblapack_s, rb_intern("imag"), 0));
   incy = NUM2INT(rblapack_incy);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cx_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -83,7 +83,7 @@ rblapack_crot(int argc, VALUE *argv, VALUE self){
   rblapack_cx = rblapack_cx_out__;
   cx = cx_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cy_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cspmv.c b/ext/cspmv.c
index 740b8c3..717006d 100644
--- a/ext/cspmv.c
+++ b/ext/cspmv.c
@@ -91,7 +91,7 @@ rblapack_cspmv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + (n-1)*abs(incy);
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cspr.c b/ext/cspr.c
index 6da0527..21035ee 100644
--- a/ext/cspr.c
+++ b/ext/cspr.c
@@ -72,7 +72,7 @@ rblapack_cspr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*( n + 1 ) )/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/csprfs.c b/ext/csprfs.c
index 62c7533..b3f8a26 100644
--- a/ext/csprfs.c
+++ b/ext/csprfs.c
@@ -107,19 +107,19 @@ rblapack_csprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cspsv.c b/ext/cspsv.c
index 3684a75..82ee69a 100644
--- a/ext/cspsv.c
+++ b/ext/cspsv.c
@@ -69,13 +69,13 @@ rblapack_cspsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_cspsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cspsvx.c b/ext/cspsvx.c
index d3f94c1..7be1cde 100644
--- a/ext/cspsvx.c
+++ b/ext/cspsvx.c
@@ -105,26 +105,26 @@ rblapack_cspsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_cspsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/csptrf.c b/ext/csptrf.c
index 5686dd8..0e00411 100644
--- a/ext/csptrf.c
+++ b/ext/csptrf.c
@@ -53,13 +53,13 @@ rblapack_csptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/csptri.c b/ext/csptri.c
index aea3d46..918c8ec 100644
--- a/ext/csptri.c
+++ b/ext/csptri.c
@@ -62,7 +62,7 @@ rblapack_csptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/csptrs.c b/ext/csptrs.c
index 1b66143..baabf9b 100644
--- a/ext/csptrs.c
+++ b/ext/csptrs.c
@@ -75,7 +75,7 @@ rblapack_csptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csrscl.c b/ext/csrscl.c
index 3ccb367..8ccceec 100644
--- a/ext/csrscl.c
+++ b/ext/csrscl.c
@@ -55,7 +55,7 @@ rblapack_csrscl(int argc, VALUE *argv, VALUE self){
     rblapack_sx = na_change_type(rblapack_sx, NA_SCOMPLEX);
   sx = NA_PTR_TYPE(rblapack_sx, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_sx_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cstedc.c b/ext/cstedc.c
index 071803e..68242f4 100644
--- a/ext/cstedc.c
+++ b/ext/cstedc.c
@@ -115,25 +115,25 @@ rblapack_cstedc(int argc, VALUE *argv, VALUE self){
     lrwork = NUM2INT(rblapack_lrwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -142,7 +142,7 @@ rblapack_cstedc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -151,7 +151,7 @@ rblapack_cstedc(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cstegr.c b/ext/cstegr.c
index 69426a9..fb7fff5 100644
--- a/ext/cstegr.c
+++ b/ext/cstegr.c
@@ -122,38 +122,38 @@ rblapack_cstegr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_cstegr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/cstein.c b/ext/cstein.c
index 3607885..f4d7874 100644
--- a/ext/cstein.c
+++ b/ext/cstein.c
@@ -101,14 +101,14 @@ rblapack_cstein(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   ldz = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = m;
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/cstemr.c b/ext/cstemr.c
index ec12ea7..d165918 100644
--- a/ext/cstemr.c
+++ b/ext/cstemr.c
@@ -126,38 +126,38 @@ rblapack_cstemr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_cstemr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/csteqr.c b/ext/csteqr.c
index 8aac0aa..2d6710a 100644
--- a/ext/csteqr.c
+++ b/ext/csteqr.c
@@ -80,7 +80,7 @@ rblapack_csteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_csteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_csteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csyequb.c b/ext/csyequb.c
index 7b679e9..14a524b 100644
--- a/ext/csyequb.c
+++ b/ext/csyequb.c
@@ -56,7 +56,7 @@ rblapack_csyequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/csymv.c b/ext/csymv.c
index 911de7b..b125b4b 100644
--- a/ext/csymv.c
+++ b/ext/csymv.c
@@ -91,7 +91,7 @@ rblapack_csymv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/csyr.c b/ext/csyr.c
index 3d655f8..d1e4907 100644
--- a/ext/csyr.c
+++ b/ext/csyr.c
@@ -70,7 +70,7 @@ rblapack_csyr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csyrfs.c b/ext/csyrfs.c
index 16294af..90c7f4e 100644
--- a/ext/csyrfs.c
+++ b/ext/csyrfs.c
@@ -111,19 +111,19 @@ rblapack_csyrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csyrfsx.c b/ext/csyrfsx.c
index 94ffca9..b74c387 100644
--- a/ext/csyrfsx.c
+++ b/ext/csyrfsx.c
@@ -149,27 +149,27 @@ rblapack_csyrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_csyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_csyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/csysv.c b/ext/csysv.c
index fff3967..9da148f 100644
--- a/ext/csysv.c
+++ b/ext/csysv.c
@@ -81,19 +81,19 @@ rblapack_csysv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_csysv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csysvx.c b/ext/csysvx.c
index 1f1e2b6..d7e1ac5 100644
--- a/ext/csysvx.c
+++ b/ext/csysvx.c
@@ -120,32 +120,32 @@ rblapack_csysvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_csysvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/csysvxx.c b/ext/csysvxx.c
index 89734b5..e8e4834 100644
--- a/ext/csysvxx.c
+++ b/ext/csysvxx.c
@@ -151,34 +151,34 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_csysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/csyswapr.c b/ext/csyswapr.c
index 1e7832c..e79a352 100644
--- a/ext/csyswapr.c
+++ b/ext/csyswapr.c
@@ -57,7 +57,7 @@ rblapack_csyswapr(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   i2 = NUM2INT(rblapack_i2);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytf2.c b/ext/csytf2.c
index b18d671..1966328 100644
--- a/ext/csytf2.c
+++ b/ext/csytf2.c
@@ -53,13 +53,13 @@ rblapack_csytf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytrf.c b/ext/csytrf.c
index 859c189..fad24d5 100644
--- a/ext/csytrf.c
+++ b/ext/csytrf.c
@@ -59,19 +59,19 @@ rblapack_csytrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytri.c b/ext/csytri.c
index 9176bcf..1b3c342 100644
--- a/ext/csytri.c
+++ b/ext/csytri.c
@@ -64,7 +64,7 @@ rblapack_csytri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytri2.c b/ext/csytri2.c
index 8c03769..f9ae248 100644
--- a/ext/csytri2.c
+++ b/ext/csytri2.c
@@ -80,7 +80,7 @@ rblapack_csytri2(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytri2x.c b/ext/csytri2x.c
index 725ac20..9f81049 100644
--- a/ext/csytri2x.c
+++ b/ext/csytri2x.c
@@ -68,7 +68,7 @@ rblapack_csytri2x(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   nb = NUM2INT(rblapack_nb);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytrs.c b/ext/csytrs.c
index 4dad8fd..a3702aa 100644
--- a/ext/csytrs.c
+++ b/ext/csytrs.c
@@ -77,7 +77,7 @@ rblapack_csytrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/csytrs2.c b/ext/csytrs2.c
index 2757022..ca7e246 100644
--- a/ext/csytrs2.c
+++ b/ext/csytrs2.c
@@ -78,7 +78,7 @@ rblapack_csytrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctbrfs.c b/ext/ctbrfs.c
index 9406e5c..b8cbc62 100644
--- a/ext/ctbrfs.c
+++ b/ext/ctbrfs.c
@@ -95,13 +95,13 @@ rblapack_ctbrfs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ctbtrs.c b/ext/ctbtrs.c
index dce432a..c0ed085 100644
--- a/ext/ctbtrs.c
+++ b/ext/ctbtrs.c
@@ -77,7 +77,7 @@ rblapack_ctbtrs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, complex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctfsm.c b/ext/ctfsm.c
index 4f9218d..1310ab7 100644
--- a/ext/ctfsm.c
+++ b/ext/ctfsm.c
@@ -86,7 +86,7 @@ rblapack_ctfsm(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctftri.c b/ext/ctftri.c
index 2a97961..b4faadd 100644
--- a/ext/ctftri.c
+++ b/ext/ctftri.c
@@ -61,7 +61,7 @@ rblapack_ctftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctfttp.c b/ext/ctfttp.c
index 231c743..17286ef 100644
--- a/ext/ctfttp.c
+++ b/ext/ctfttp.c
@@ -57,7 +57,7 @@ rblapack_ctfttp(int argc, VALUE *argv, VALUE self){
     rblapack_arf = na_change_type(rblapack_arf, NA_SCOMPLEX);
   arf = NA_PTR_TYPE(rblapack_arf, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctfttr.c b/ext/ctfttr.c
index 6ea2b73..0d6c862 100644
--- a/ext/ctfttr.c
+++ b/ext/ctfttr.c
@@ -57,7 +57,7 @@ rblapack_ctfttr(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgevc.c b/ext/ctgevc.c
index 8eddd36..7b8397b 100644
--- a/ext/ctgevc.c
+++ b/ext/ctgevc.c
@@ -115,7 +115,7 @@ rblapack_ctgevc(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SCOMPLEX);
   s = NA_PTR_TYPE(rblapack_s, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ctgevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgex2.c b/ext/ctgex2.c
index 295ff17..a87d6c4 100644
--- a/ext/ctgex2.c
+++ b/ext/ctgex2.c
@@ -115,7 +115,7 @@ rblapack_ctgex2(int argc, VALUE *argv, VALUE self){
     rblapack_q = na_change_type(rblapack_q, NA_SCOMPLEX);
   q = NA_PTR_TYPE(rblapack_q, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ctgex2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -135,7 +135,7 @@ rblapack_ctgex2(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantq ? ldq : 0;
     shape[1] = wantq ? n : 0;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_ctgex2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantq ? ldz : 0;
     shape[1] = wantq ? n : 0;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgexc.c b/ext/ctgexc.c
index 063d46a..bb0ae88 100644
--- a/ext/ctgexc.c
+++ b/ext/ctgexc.c
@@ -115,7 +115,7 @@ rblapack_ctgexc(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, complex*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ctgexc(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -135,7 +135,7 @@ rblapack_ctgexc(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_ctgexc(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgsen.c b/ext/ctgsen.c
index a0e9bab..c64b070 100644
--- a/ext/ctgsen.c
+++ b/ext/ctgsen.c
@@ -155,37 +155,37 @@ rblapack_ctgsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_dif = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -195,7 +195,7 @@ rblapack_ctgsen(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -205,7 +205,7 @@ rblapack_ctgsen(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_ctgsen(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgsja.c b/ext/ctgsja.c
index 56ce6ea..381ef58 100644
--- a/ext/ctgsja.c
+++ b/ext/ctgsja.c
@@ -146,19 +146,19 @@ rblapack_ctgsja(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, complex*);
   tola = (real)NUM2DBL(rblapack_tola);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -168,7 +168,7 @@ rblapack_ctgsja(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_ctgsja(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_ctgsja(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_ctgsja(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgsna.c b/ext/ctgsna.c
index a48725e..3ddd0da 100644
--- a/ext/ctgsna.c
+++ b/ext/ctgsna.c
@@ -127,19 +127,19 @@ rblapack_ctgsna(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_dif = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctgsy2.c b/ext/ctgsy2.c
index 0455996..404f654 100644
--- a/ext/ctgsy2.c
+++ b/ext/ctgsy2.c
@@ -137,7 +137,7 @@ rblapack_ctgsy2(int argc, VALUE *argv, VALUE self){
     rblapack_f = na_change_type(rblapack_f, NA_SCOMPLEX);
   f = NA_PTR_TYPE(rblapack_f, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_ctgsy2(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctgsyl.c b/ext/ctgsyl.c
index 57e6b44..2a67033 100644
--- a/ext/ctgsyl.c
+++ b/ext/ctgsyl.c
@@ -144,13 +144,13 @@ rblapack_ctgsyl(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_ctgsyl(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctprfs.c b/ext/ctprfs.c
index 63c6a27..a04492b 100644
--- a/ext/ctprfs.c
+++ b/ext/ctprfs.c
@@ -91,13 +91,13 @@ rblapack_ctprfs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ctptri.c b/ext/ctptri.c
index d231886..cafed55 100644
--- a/ext/ctptri.c
+++ b/ext/ctptri.c
@@ -57,7 +57,7 @@ rblapack_ctptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctptrs.c b/ext/ctptrs.c
index 72961ae..4ca76e0 100644
--- a/ext/ctptrs.c
+++ b/ext/ctptrs.c
@@ -75,7 +75,7 @@ rblapack_ctptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctpttf.c b/ext/ctpttf.c
index 36a7a55..40cc160 100644
--- a/ext/ctpttf.c
+++ b/ext/ctpttf.c
@@ -57,7 +57,7 @@ rblapack_ctpttf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctpttr.c b/ext/ctpttr.c
index 68700b0..de2f711 100644
--- a/ext/ctpttr.c
+++ b/ext/ctpttr.c
@@ -53,7 +53,7 @@ rblapack_ctpttr(int argc, VALUE *argv, VALUE self){
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrevc.c b/ext/ctrevc.c
index b1aec98..8434900 100644
--- a/ext/ctrevc.c
+++ b/ext/ctrevc.c
@@ -103,7 +103,7 @@ rblapack_ctrevc(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_SCOMPLEX);
   t = NA_PTR_TYPE(rblapack_t, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -113,7 +113,7 @@ rblapack_ctrevc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -123,7 +123,7 @@ rblapack_ctrevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrexc.c b/ext/ctrexc.c
index f2aaa72..ddecb8e 100644
--- a/ext/ctrexc.c
+++ b/ext/ctrexc.c
@@ -75,7 +75,7 @@ rblapack_ctrexc(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, complex*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -85,7 +85,7 @@ rblapack_ctrexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrrfs.c b/ext/ctrrfs.c
index 5409c4a..094fc1c 100644
--- a/ext/ctrrfs.c
+++ b/ext/ctrrfs.c
@@ -91,13 +91,13 @@ rblapack_ctrrfs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ctrsen.c b/ext/ctrsen.c
index f77cc9a..2bf0d6d 100644
--- a/ext/ctrsen.c
+++ b/ext/ctrsen.c
@@ -103,19 +103,19 @@ rblapack_ctrsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ctrsen(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrsna.c b/ext/ctrsna.c
index f940052..89b831e 100644
--- a/ext/ctrsna.c
+++ b/ext/ctrsna.c
@@ -104,13 +104,13 @@ rblapack_ctrsna(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, complex*);
   ldwork = ((lsame_(&job,"V")) || (lsame_(&job,"B"))) ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_sep = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ctrsyl.c b/ext/ctrsyl.c
index 22e84df..88c0c85 100644
--- a/ext/ctrsyl.c
+++ b/ext/ctrsyl.c
@@ -89,7 +89,7 @@ rblapack_ctrsyl(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrti2.c b/ext/ctrti2.c
index 87088e2..bcda845 100644
--- a/ext/ctrti2.c
+++ b/ext/ctrti2.c
@@ -55,7 +55,7 @@ rblapack_ctrti2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrtri.c b/ext/ctrtri.c
index 11f6fc4..b0b4ff0 100644
--- a/ext/ctrtri.c
+++ b/ext/ctrtri.c
@@ -55,7 +55,7 @@ rblapack_ctrtri(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrtrs.c b/ext/ctrtrs.c
index 460d422..de67db6 100644
--- a/ext/ctrtrs.c
+++ b/ext/ctrtrs.c
@@ -73,7 +73,7 @@ rblapack_ctrtrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctrttf.c b/ext/ctrttf.c
index 3b8bf77..24a9df8 100644
--- a/ext/ctrttf.c
+++ b/ext/ctrttf.c
@@ -55,7 +55,7 @@ rblapack_ctrttf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   uplo = StringValueCStr(rblapack_uplo)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctrttp.c b/ext/ctrttp.c
index cfb293a..95b884d 100644
--- a/ext/ctrttp.c
+++ b/ext/ctrttp.c
@@ -51,7 +51,7 @@ rblapack_ctrttp(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ctzrqf.c b/ext/ctzrqf.c
index db51c87..4031470 100644
--- a/ext/ctzrqf.c
+++ b/ext/ctzrqf.c
@@ -51,13 +51,13 @@ rblapack_ctzrqf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, complex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ctzrzf.c b/ext/ctzrzf.c
index 752e627..653e5b8 100644
--- a/ext/ctzrzf.c
+++ b/ext/ctzrzf.c
@@ -63,19 +63,19 @@ rblapack_ctzrzf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunbdb.c b/ext/cunbdb.c
index 21d88e4..7473d0f 100644
--- a/ext/cunbdb.c
+++ b/ext/cunbdb.c
@@ -138,43 +138,43 @@ rblapack_cunbdb(int argc, VALUE *argv, VALUE self){
     rblapack_x12 = na_change_type(rblapack_x12, NA_SCOMPLEX);
   x12 = NA_PTR_TYPE(rblapack_x12, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_phi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   phi = NA_PTR_TYPE(rblapack_phi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_taup1 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taup1 = NA_PTR_TYPE(rblapack_taup1, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_taup2 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   taup2 = NA_PTR_TYPE(rblapack_taup2, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_tauq1 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tauq1 = NA_PTR_TYPE(rblapack_tauq1, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_tauq2 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   tauq2 = NA_PTR_TYPE(rblapack_tauq2, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx11;
     shape[1] = q;
     rblapack_x11_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_cunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x11 = rblapack_x11_out__;
   x11 = x11_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx12;
     shape[1] = m-q;
     rblapack_x12_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -194,7 +194,7 @@ rblapack_cunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x12 = rblapack_x12_out__;
   x12 = x12_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx21;
     shape[1] = q;
     rblapack_x21_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
@@ -204,7 +204,7 @@ rblapack_cunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x21 = rblapack_x21_out__;
   x21 = x21_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx22;
     shape[1] = m-q;
     rblapack_x22_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cuncsd.c b/ext/cuncsd.c
index 6d191bd..8107d40 100644
--- a/ext/cuncsd.c
+++ b/ext/cuncsd.c
@@ -152,31 +152,31 @@ rblapack_cuncsd(int argc, VALUE *argv, VALUE self){
   ldu2 = lsame_(&jobu2,"Y") ?  MAX(1,m-p) : 0;
   ldx22 = p;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(MIN(MIN(p,m-p),q),m-q);
     rblapack_theta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_u1 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   u1 = NA_PTR_TYPE(rblapack_u1, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_u2 = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_v1t = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   v1t = NA_PTR_TYPE(rblapack_v1t, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_v2t = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/cung2l.c b/ext/cung2l.c
index 71cd904..4a56840 100644
--- a/ext/cung2l.c
+++ b/ext/cung2l.c
@@ -64,7 +64,7 @@ rblapack_cung2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cung2r.c b/ext/cung2r.c
index 51e9236..09f9d80 100644
--- a/ext/cung2r.c
+++ b/ext/cung2r.c
@@ -64,7 +64,7 @@ rblapack_cung2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungbr.c b/ext/cungbr.c
index ebd0f84..ad9c36d 100644
--- a/ext/cungbr.c
+++ b/ext/cungbr.c
@@ -83,13 +83,13 @@ rblapack_cungbr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunghr.c b/ext/cunghr.c
index ac58dd5..695f17f 100644
--- a/ext/cunghr.c
+++ b/ext/cunghr.c
@@ -79,13 +79,13 @@ rblapack_cunghr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungl2.c b/ext/cungl2.c
index 4eb17cb..ecbe83c 100644
--- a/ext/cungl2.c
+++ b/ext/cungl2.c
@@ -62,7 +62,7 @@ rblapack_cungl2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunglq.c b/ext/cunglq.c
index bdc4d07..dd8a62b 100644
--- a/ext/cunglq.c
+++ b/ext/cunglq.c
@@ -75,13 +75,13 @@ rblapack_cunglq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungql.c b/ext/cungql.c
index 51e86da..045104c 100644
--- a/ext/cungql.c
+++ b/ext/cungql.c
@@ -75,13 +75,13 @@ rblapack_cungql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungqr.c b/ext/cungqr.c
index fe7d2af..b56c4b7 100644
--- a/ext/cungqr.c
+++ b/ext/cungqr.c
@@ -75,13 +75,13 @@ rblapack_cungqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungr2.c b/ext/cungr2.c
index c68ccfa..2700d5c 100644
--- a/ext/cungr2.c
+++ b/ext/cungr2.c
@@ -62,7 +62,7 @@ rblapack_cungr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungrq.c b/ext/cungrq.c
index 7239725..82fad01 100644
--- a/ext/cungrq.c
+++ b/ext/cungrq.c
@@ -75,13 +75,13 @@ rblapack_cungrq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cungtr.c b/ext/cungtr.c
index 5779d5e..178fab1 100644
--- a/ext/cungtr.c
+++ b/ext/cungtr.c
@@ -75,13 +75,13 @@ rblapack_cungtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunm2l.c b/ext/cunm2l.c
index 286f9eb..e2e36af 100644
--- a/ext/cunm2l.c
+++ b/ext/cunm2l.c
@@ -86,7 +86,7 @@ rblapack_cunm2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunm2r.c b/ext/cunm2r.c
index 5f4d605..b798b31 100644
--- a/ext/cunm2r.c
+++ b/ext/cunm2r.c
@@ -86,7 +86,7 @@ rblapack_cunm2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmbr.c b/ext/cunmbr.c
index 2483e6b..012c5ce 100644
--- a/ext/cunmbr.c
+++ b/ext/cunmbr.c
@@ -107,13 +107,13 @@ rblapack_cunmbr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmhr.c b/ext/cunmhr.c
index 257cb23..215033f 100644
--- a/ext/cunmhr.c
+++ b/ext/cunmhr.c
@@ -101,13 +101,13 @@ rblapack_cunmhr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunml2.c b/ext/cunml2.c
index 2c976b7..1a0365f 100644
--- a/ext/cunml2.c
+++ b/ext/cunml2.c
@@ -82,7 +82,7 @@ rblapack_cunml2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmlq.c b/ext/cunmlq.c
index 70248cb..3bb183c 100644
--- a/ext/cunmlq.c
+++ b/ext/cunmlq.c
@@ -93,13 +93,13 @@ rblapack_cunmlq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmql.c b/ext/cunmql.c
index 2a586ef..81c5b68 100644
--- a/ext/cunmql.c
+++ b/ext/cunmql.c
@@ -97,13 +97,13 @@ rblapack_cunmql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmqr.c b/ext/cunmqr.c
index 9079d83..a0c8c9e 100644
--- a/ext/cunmqr.c
+++ b/ext/cunmqr.c
@@ -97,13 +97,13 @@ rblapack_cunmqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmr2.c b/ext/cunmr2.c
index 4887738..983c391 100644
--- a/ext/cunmr2.c
+++ b/ext/cunmr2.c
@@ -82,7 +82,7 @@ rblapack_cunmr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmr3.c b/ext/cunmr3.c
index 9939542..c675527 100644
--- a/ext/cunmr3.c
+++ b/ext/cunmr3.c
@@ -86,7 +86,7 @@ rblapack_cunmr3(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmrq.c b/ext/cunmrq.c
index 9cf8168..92e7462 100644
--- a/ext/cunmrq.c
+++ b/ext/cunmrq.c
@@ -93,13 +93,13 @@ rblapack_cunmrq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmrz.c b/ext/cunmrz.c
index 6fd9763..3b5d80b 100644
--- a/ext/cunmrz.c
+++ b/ext/cunmrz.c
@@ -97,13 +97,13 @@ rblapack_cunmrz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cunmtr.c b/ext/cunmtr.c
index d70aa3f..39d859a 100644
--- a/ext/cunmtr.c
+++ b/ext/cunmtr.c
@@ -97,13 +97,13 @@ rblapack_cunmtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cupgtr.c b/ext/cupgtr.c
index 7d538a7..427da06 100644
--- a/ext/cupgtr.c
+++ b/ext/cupgtr.c
@@ -66,7 +66,7 @@ rblapack_cupgtr(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   ldq = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/cupmtr.c b/ext/cupmtr.c
index 9437020..ff6a24e 100644
--- a/ext/cupmtr.c
+++ b/ext/cupmtr.c
@@ -88,7 +88,7 @@ rblapack_cupmtr(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, complex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/dbbcsd.c b/ext/dbbcsd.c
index ab3709e..c3adfb4 100644
--- a/ext/dbbcsd.c
+++ b/ext/dbbcsd.c
@@ -172,55 +172,55 @@ rblapack_dbbcsd(int argc, VALUE *argv, VALUE self){
     rblapack_phi = na_change_type(rblapack_phi, NA_DFLOAT);
   phi = NA_PTR_TYPE(rblapack_phi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b11d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b11d = NA_PTR_TYPE(rblapack_b11d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b11e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b11e = NA_PTR_TYPE(rblapack_b11e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b12d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b12d = NA_PTR_TYPE(rblapack_b12d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b12e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b12e = NA_PTR_TYPE(rblapack_b12e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b21d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b21d = NA_PTR_TYPE(rblapack_b21d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b21e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b21e = NA_PTR_TYPE(rblapack_b21e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b22d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b22d = NA_PTR_TYPE(rblapack_b22d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b22e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b22e = NA_PTR_TYPE(rblapack_b22e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_dbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_theta = rblapack_theta_out__;
   theta = theta_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu1;
     shape[1] = p;
     rblapack_u1_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -239,7 +239,7 @@ rblapack_dbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u1 = rblapack_u1_out__;
   u1 = u1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = m-p;
     rblapack_u2_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_dbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u2 = rblapack_u2_out__;
   u2 = u2_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv1t;
     shape[1] = q;
     rblapack_v1t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -259,7 +259,7 @@ rblapack_dbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_v1t = rblapack_v1t_out__;
   v1t = v1t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv2t;
     shape[1] = m-q;
     rblapack_v2t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dbdsdc.c b/ext/dbdsdc.c
index 084aec7..01febd2 100644
--- a/ext/dbdsdc.c
+++ b/ext/dbdsdc.c
@@ -87,33 +87,33 @@ rblapack_dbdsdc(int argc, VALUE *argv, VALUE self){
   smlsiz = ilaenv_(&c__9, "DBDSDC", " ", &c__0, &c__0, &c__0, &c__0);
   ldvt = lsame_(&compq,"I") ? MAX(1,n) : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compq,"I") ? ldu : 0;
     shape[1] = lsame_(&compq,"I") ? n : 0;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compq,"I") ? ldvt : 0;
     shape[1] = lsame_(&compq,"I") ? n : 0;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&compq,"I") ? (lsame_(&compq,"P") ? n*(11+2*smlsiz+8*(int)(log(((double)n)/(smlsiz+1))/log(2.0))) : 0) : 0;
     rblapack_q = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&compq,"I") ? (lsame_(&compq,"P") ? n*(3+3*(int)(log(((double)n)/(smlsiz+1))/log(2.0))) : 0) : 0;
     rblapack_iq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iq = NA_PTR_TYPE(rblapack_iq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -122,7 +122,7 @@ rblapack_dbdsdc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dbdsqr.c b/ext/dbdsqr.c
index 128d5d2..0ef95f1 100644
--- a/ext/dbdsqr.c
+++ b/ext/dbdsqr.c
@@ -116,7 +116,7 @@ rblapack_dbdsqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_dbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_dbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_dbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_dbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/ddisna.c b/ext/ddisna.c
index 7b35056..338a027 100644
--- a/ext/ddisna.c
+++ b/ext/ddisna.c
@@ -53,7 +53,7 @@ rblapack_ddisna(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   n = NUM2INT(rblapack_n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&job,"E") ? m : ((lsame_(&job,"L")) || (lsame_(&job,"R"))) ? MIN(m,n) : 0;
     rblapack_sep = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgbbrd.c b/ext/dgbbrd.c
index 268dda5..b9239e1 100644
--- a/ext/dgbbrd.c
+++ b/ext/dgbbrd.c
@@ -90,33 +90,33 @@ rblapack_dgbbrd(int argc, VALUE *argv, VALUE self){
   m = ldab;
   ldq = ((lsame_(&vect,"Q")) || (lsame_(&vect,"B"))) ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = m;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldpt;
     shape[1] = n;
     rblapack_pt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   pt = NA_PTR_TYPE(rblapack_pt, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -126,7 +126,7 @@ rblapack_dgbbrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbequ.c b/ext/dgbequ.c
index 2c1631c..617b09d 100644
--- a/ext/dgbequ.c
+++ b/ext/dgbequ.c
@@ -67,13 +67,13 @@ rblapack_dgbequ(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,m);
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgbequb.c b/ext/dgbequb.c
index e4e70e5..693c523 100644
--- a/ext/dgbequb.c
+++ b/ext/dgbequb.c
@@ -65,13 +65,13 @@ rblapack_dgbequb(int argc, VALUE *argv, VALUE self){
   ku = NUM2INT(rblapack_ku);
   m = ldab;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgbrfs.c b/ext/dgbrfs.c
index bc578be..5f2ef34 100644
--- a/ext/dgbrfs.c
+++ b/ext/dgbrfs.c
@@ -119,19 +119,19 @@ rblapack_dgbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbrfsx.c b/ext/dgbrfsx.c
index c0c9908..294b555 100644
--- a/ext/dgbrfsx.c
+++ b/ext/dgbrfsx.c
@@ -171,27 +171,27 @@ rblapack_dgbrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_r = na_change_type(rblapack_r, NA_DFLOAT);
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_dgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -209,7 +209,7 @@ rblapack_dgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -219,7 +219,7 @@ rblapack_dgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgbsv.c b/ext/dgbsv.c
index b8b9b6c..e352e52 100644
--- a/ext/dgbsv.c
+++ b/ext/dgbsv.c
@@ -73,13 +73,13 @@ rblapack_dgbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -89,7 +89,7 @@ rblapack_dgbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbsvx.c b/ext/dgbsvx.c
index 422d919..93fbfe9 100644
--- a/ext/dgbsvx.c
+++ b/ext/dgbsvx.c
@@ -176,32 +176,32 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
     afb = NA_PTR_TYPE(rblapack_afb, doublereal*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3*n;
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -211,7 +211,7 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -234,7 +234,7 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -245,7 +245,7 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -256,7 +256,7 @@ rblapack_dgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbsvxx.c b/ext/dgbsvxx.c
index fe73f34..d3c5bad 100644
--- a/ext/dgbsvxx.c
+++ b/ext/dgbsvxx.c
@@ -173,34 +173,34 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   equed = StringValueCStr(rblapack_equed)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -220,7 +220,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -238,7 +238,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -247,7 +247,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_dgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgbtf2.c b/ext/dgbtf2.c
index 8c5d6bf..a005f4d 100644
--- a/ext/dgbtf2.c
+++ b/ext/dgbtf2.c
@@ -61,13 +61,13 @@ rblapack_dgbtf2(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbtrf.c b/ext/dgbtrf.c
index eaa9dd3..2f9fffc 100644
--- a/ext/dgbtrf.c
+++ b/ext/dgbtrf.c
@@ -61,13 +61,13 @@ rblapack_dgbtrf(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgbtrs.c b/ext/dgbtrs.c
index d85044d..d450514 100644
--- a/ext/dgbtrs.c
+++ b/ext/dgbtrs.c
@@ -85,7 +85,7 @@ rblapack_dgbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgebak.c b/ext/dgebak.c
index f2ef776..e4253ee 100644
--- a/ext/dgebak.c
+++ b/ext/dgebak.c
@@ -75,7 +75,7 @@ rblapack_dgebak(int argc, VALUE *argv, VALUE self){
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgebal.c b/ext/dgebal.c
index 61331be..e68b811 100644
--- a/ext/dgebal.c
+++ b/ext/dgebal.c
@@ -57,13 +57,13 @@ rblapack_dgebal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgebd2.c b/ext/dgebd2.c
index 96f672f..72f5d53 100644
--- a/ext/dgebd2.c
+++ b/ext/dgebd2.c
@@ -60,31 +60,31 @@ rblapack_dgebd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgebrd.c b/ext/dgebrd.c
index a053391..8e7fa18 100644
--- a/ext/dgebrd.c
+++ b/ext/dgebrd.c
@@ -71,37 +71,37 @@ rblapack_dgebrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeequ.c b/ext/dgeequ.c
index 66140dc..98d1935 100644
--- a/ext/dgeequ.c
+++ b/ext/dgeequ.c
@@ -57,13 +57,13 @@ rblapack_dgeequ(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgeequb.c b/ext/dgeequb.c
index db09e50..91a1b13 100644
--- a/ext/dgeequb.c
+++ b/ext/dgeequb.c
@@ -57,13 +57,13 @@ rblapack_dgeequb(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgees.c b/ext/dgees.c
index f838492..3a759a9 100644
--- a/ext/dgees.c
+++ b/ext/dgees.c
@@ -94,32 +94,32 @@ rblapack_dgees(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeesx.c b/ext/dgeesx.c
index 7424ea9..784148d 100644
--- a/ext/dgeesx.c
+++ b/ext/dgeesx.c
@@ -108,38 +108,38 @@ rblapack_dgeesx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeev.c b/ext/dgeev.c
index 75fa9cd..23e000e 100644
--- a/ext/dgeev.c
+++ b/ext/dgeev.c
@@ -79,39 +79,39 @@ rblapack_dgeev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeevx.c b/ext/dgeevx.c
index 8ce6ef4..cbe4eff 100644
--- a/ext/dgeevx.c
+++ b/ext/dgeevx.c
@@ -100,57 +100,57 @@ rblapack_dgeevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgegs.c b/ext/dgegs.c
index 2994527..903e0b6 100644
--- a/ext/dgegs.c
+++ b/ext/dgegs.c
@@ -97,45 +97,45 @@ rblapack_dgegs(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_dgegs(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgegv.c b/ext/dgegv.c
index d191a41..f7f015e 100644
--- a/ext/dgegv.c
+++ b/ext/dgegv.c
@@ -97,45 +97,45 @@ rblapack_dgegv(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_dgegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgehd2.c b/ext/dgehd2.c
index 1171b43..a927ea6 100644
--- a/ext/dgehd2.c
+++ b/ext/dgehd2.c
@@ -58,13 +58,13 @@ rblapack_dgehd2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgehrd.c b/ext/dgehrd.c
index 70312ff..18773c2 100644
--- a/ext/dgehrd.c
+++ b/ext/dgehrd.c
@@ -69,19 +69,19 @@ rblapack_dgehrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgejsv.c b/ext/dgejsv.c
index 9e02694..e3220c3 100644
--- a/ext/dgejsv.c
+++ b/ext/dgejsv.c
@@ -108,33 +108,33 @@ rblapack_dgejsv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   sva = NA_PTR_TYPE(rblapack_sva, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m+3*n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lwork;
     rblapack_work_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgelq2.c b/ext/dgelq2.c
index 7290332..b49b9a0 100644
--- a/ext/dgelq2.c
+++ b/ext/dgelq2.c
@@ -52,13 +52,13 @@ rblapack_dgelq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgelqf.c b/ext/dgelqf.c
index 3a19031..81f3c16 100644
--- a/ext/dgelqf.c
+++ b/ext/dgelqf.c
@@ -65,19 +65,19 @@ rblapack_dgelqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgels.c b/ext/dgels.c
index d6858dc..4cbe6db 100644
--- a/ext/dgels.c
+++ b/ext/dgels.c
@@ -83,13 +83,13 @@ rblapack_dgels(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_dgels(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgelsd.c b/ext/dgelsd.c
index baee53b..529cae6 100644
--- a/ext/dgelsd.c
+++ b/ext/dgelsd.c
@@ -96,19 +96,19 @@ rblapack_dgelsd(int argc, VALUE *argv, VALUE self){
   }
   liwork = 3*(MIN(m,n))*nlvl+11*(MIN(m,n));
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgelss.c b/ext/dgelss.c
index 93b75df..fafe819 100644
--- a/ext/dgelss.c
+++ b/ext/dgelss.c
@@ -87,19 +87,19 @@ rblapack_dgelss(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_dgelss(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgelsx.c b/ext/dgelsx.c
index 78c38b8..da0edee 100644
--- a/ext/dgelsx.c
+++ b/ext/dgelsx.c
@@ -88,7 +88,7 @@ rblapack_dgelsx(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_dgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -108,7 +108,7 @@ rblapack_dgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dgelsy.c b/ext/dgelsy.c
index 66f6803..b95c58a 100644
--- a/ext/dgelsy.c
+++ b/ext/dgelsy.c
@@ -99,13 +99,13 @@ rblapack_dgelsy(int argc, VALUE *argv, VALUE self){
   rcond = NUM2DBL(rblapack_rcond);
   ldb = MAX(m,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_dgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_dgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dgeql2.c b/ext/dgeql2.c
index 6ed5b21..c3d3a42 100644
--- a/ext/dgeql2.c
+++ b/ext/dgeql2.c
@@ -54,13 +54,13 @@ rblapack_dgeql2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeqlf.c b/ext/dgeqlf.c
index b193069..ef68580 100644
--- a/ext/dgeqlf.c
+++ b/ext/dgeqlf.c
@@ -65,19 +65,19 @@ rblapack_dgeqlf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeqp3.c b/ext/dgeqp3.c
index 9b5eddf..a628eca 100644
--- a/ext/dgeqp3.c
+++ b/ext/dgeqp3.c
@@ -79,19 +79,19 @@ rblapack_dgeqp3(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -101,7 +101,7 @@ rblapack_dgeqp3(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dgeqpf.c b/ext/dgeqpf.c
index 9d12656..67015a7 100644
--- a/ext/dgeqpf.c
+++ b/ext/dgeqpf.c
@@ -68,13 +68,13 @@ rblapack_dgeqpf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -84,7 +84,7 @@ rblapack_dgeqpf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dgeqr2.c b/ext/dgeqr2.c
index c481b80..fe3d68f 100644
--- a/ext/dgeqr2.c
+++ b/ext/dgeqr2.c
@@ -54,13 +54,13 @@ rblapack_dgeqr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeqr2p.c b/ext/dgeqr2p.c
index d733904..05416af 100644
--- a/ext/dgeqr2p.c
+++ b/ext/dgeqr2p.c
@@ -54,13 +54,13 @@ rblapack_dgeqr2p(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeqrf.c b/ext/dgeqrf.c
index 915de53..d75c576 100644
--- a/ext/dgeqrf.c
+++ b/ext/dgeqrf.c
@@ -65,19 +65,19 @@ rblapack_dgeqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgeqrfp.c b/ext/dgeqrfp.c
index b42b035..dbabbdb 100644
--- a/ext/dgeqrfp.c
+++ b/ext/dgeqrfp.c
@@ -65,19 +65,19 @@ rblapack_dgeqrfp(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgerfs.c b/ext/dgerfs.c
index d6683c7..a451527 100644
--- a/ext/dgerfs.c
+++ b/ext/dgerfs.c
@@ -111,19 +111,19 @@ rblapack_dgerfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgerfsx.c b/ext/dgerfsx.c
index f4649d4..c080f3e 100644
--- a/ext/dgerfsx.c
+++ b/ext/dgerfsx.c
@@ -159,27 +159,27 @@ rblapack_dgerfsx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -189,7 +189,7 @@ rblapack_dgerfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgerq2.c b/ext/dgerq2.c
index f0ba5d6..abf355f 100644
--- a/ext/dgerq2.c
+++ b/ext/dgerq2.c
@@ -52,13 +52,13 @@ rblapack_dgerq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgerqf.c b/ext/dgerqf.c
index f765cc4..c87697c 100644
--- a/ext/dgerqf.c
+++ b/ext/dgerqf.c
@@ -65,19 +65,19 @@ rblapack_dgerqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgesc2.c b/ext/dgesc2.c
index 0156529..7be8248 100644
--- a/ext/dgesc2.c
+++ b/ext/dgesc2.c
@@ -83,7 +83,7 @@ rblapack_dgesc2(int argc, VALUE *argv, VALUE self){
     rblapack_jpiv = na_change_type(rblapack_jpiv, NA_LINT);
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgesdd.c b/ext/dgesdd.c
index 075421e..76fb9ba 100644
--- a/ext/dgesdd.c
+++ b/ext/dgesdd.c
@@ -78,33 +78,33 @@ rblapack_dgesdd(int argc, VALUE *argv, VALUE self){
   ldu = (lsame_(&jobz,"S") || lsame_(&jobz,"A") || (lsame_(&jobz,"O") && m < n)) ? m : 1;
   ucol = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m < n)))) ? m : lsame_(&jobz,"S") ? MIN(m,n) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = ucol;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgesv.c b/ext/dgesv.c
index 21a318c..46db02e 100644
--- a/ext/dgesv.c
+++ b/ext/dgesv.c
@@ -65,13 +65,13 @@ rblapack_dgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_dgesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgesvd.c b/ext/dgesvd.c
index c4e4eed..8dd1bdf 100644
--- a/ext/dgesvd.c
+++ b/ext/dgesvd.c
@@ -79,33 +79,33 @@ rblapack_dgesvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = lsame_(&jobu,"A") ? m : lsame_(&jobu,"S") ? MIN(m,n) : 0;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = MAX(n, MIN(m,n));
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgesvj.c b/ext/dgesvj.c
index 8cae660..7c6fedc 100644
--- a/ext/dgesvj.c
+++ b/ext/dgesvj.c
@@ -105,13 +105,13 @@ rblapack_dgesvj(int argc, VALUE *argv, VALUE self){
     rblapack_work = na_change_type(rblapack_work, NA_DFLOAT);
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   sva = NA_PTR_TYPE(rblapack_sva, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_dgesvj(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_dgesvj(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lwork;
     rblapack_work_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgesvx.c b/ext/dgesvx.c
index c382468..3eb3810 100644
--- a/ext/dgesvx.c
+++ b/ext/dgesvx.c
@@ -168,32 +168,32 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
     af = NA_PTR_TYPE(rblapack_af, doublereal*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4*n;
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -237,7 +237,7 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -248,7 +248,7 @@ rblapack_dgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgesvxx.c b/ext/dgesvxx.c
index a2e5133..5e93b80 100644
--- a/ext/dgesvxx.c
+++ b/ext/dgesvxx.c
@@ -165,34 +165,34 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -202,7 +202,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -212,7 +212,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -221,7 +221,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -230,7 +230,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -239,7 +239,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_dgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgetc2.c b/ext/dgetc2.c
index 729e85d..8a3f649 100644
--- a/ext/dgetc2.c
+++ b/ext/dgetc2.c
@@ -51,19 +51,19 @@ rblapack_dgetc2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgetf2.c b/ext/dgetf2.c
index 66c3a5b..b9439ec 100644
--- a/ext/dgetf2.c
+++ b/ext/dgetf2.c
@@ -53,13 +53,13 @@ rblapack_dgetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgetrf.c b/ext/dgetrf.c
index 1a653c9..ef00164 100644
--- a/ext/dgetrf.c
+++ b/ext/dgetrf.c
@@ -53,13 +53,13 @@ rblapack_dgetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgetri.c b/ext/dgetri.c
index 486a851..5e18074 100644
--- a/ext/dgetri.c
+++ b/ext/dgetri.c
@@ -71,13 +71,13 @@ rblapack_dgetri(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgetrs.c b/ext/dgetrs.c
index d2f6cdb..211fc60 100644
--- a/ext/dgetrs.c
+++ b/ext/dgetrs.c
@@ -77,7 +77,7 @@ rblapack_dgetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggbak.c b/ext/dggbak.c
index a9a1076..501f09b 100644
--- a/ext/dggbak.c
+++ b/ext/dggbak.c
@@ -87,7 +87,7 @@ rblapack_dggbak(int argc, VALUE *argv, VALUE self){
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggbal.c b/ext/dggbal.c
index 532a267..4d8f8f7 100644
--- a/ext/dggbal.c
+++ b/ext/dggbal.c
@@ -76,19 +76,19 @@ rblapack_dggbal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_dggbal(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgges.c b/ext/dgges.c
index 76b4bbc..7305661 100644
--- a/ext/dgges.c
+++ b/ext/dgges.c
@@ -121,45 +121,45 @@ rblapack_dgges(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -169,7 +169,7 @@ rblapack_dgges(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggesx.c b/ext/dggesx.c
index d447fe9..b3b0ad2 100644
--- a/ext/dggesx.c
+++ b/ext/dggesx.c
@@ -140,57 +140,57 @@ rblapack_dggesx(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -200,7 +200,7 @@ rblapack_dggesx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggev.c b/ext/dggev.c
index f02a220..78988f1 100644
--- a/ext/dggev.c
+++ b/ext/dggev.c
@@ -97,45 +97,45 @@ rblapack_dggev(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_dggev(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggevx.c b/ext/dggevx.c
index a774cee..f8e7502 100644
--- a/ext/dggevx.c
+++ b/ext/dggevx.c
@@ -123,69 +123,69 @@ rblapack_dggevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -195,7 +195,7 @@ rblapack_dggevx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggglm.c b/ext/dggglm.c
index 92a5461..786a0d5 100644
--- a/ext/dggglm.c
+++ b/ext/dggglm.c
@@ -93,25 +93,25 @@ rblapack_dggglm(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_x = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_y = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_dggglm(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_dggglm(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgghrd.c b/ext/dgghrd.c
index b4a27e9..19869a5 100644
--- a/ext/dgghrd.c
+++ b/ext/dgghrd.c
@@ -111,7 +111,7 @@ rblapack_dgghrd(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_dgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_dgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -141,7 +141,7 @@ rblapack_dgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgglse.c b/ext/dgglse.c
index 8fbd3d0..4022692 100644
--- a/ext/dgglse.c
+++ b/ext/dgglse.c
@@ -105,19 +105,19 @@ rblapack_dgglse(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_dgglse(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_dgglse(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_dgglse(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dggqrf.c b/ext/dggqrf.c
index 37ad3ee..bd298b7 100644
--- a/ext/dggqrf.c
+++ b/ext/dggqrf.c
@@ -83,25 +83,25 @@ rblapack_dggqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,m);
     rblapack_taua = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,p);
     rblapack_taub = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_dggqrf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggrqf.c b/ext/dggrqf.c
index b65d712..ed069d7 100644
--- a/ext/dggrqf.c
+++ b/ext/dggrqf.c
@@ -87,25 +87,25 @@ rblapack_dggrqf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taua = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(p,n);
     rblapack_taub = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_dggrqf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggsvd.c b/ext/dggsvd.c
index bf95956..00741ae 100644
--- a/ext/dggsvd.c
+++ b/ext/dggsvd.c
@@ -102,46 +102,46 @@ rblapack_dggsvd(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -151,7 +151,7 @@ rblapack_dggsvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dggsvp.c b/ext/dggsvp.c
index cfe4508..88aa0fe 100644
--- a/ext/dggsvp.c
+++ b/ext/dggsvp.c
@@ -106,28 +106,28 @@ rblapack_dggsvp(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_dggsvp(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgsvj0.c b/ext/dgsvj0.c
index 34666f8..25290f2 100644
--- a/ext/dgsvj0.c
+++ b/ext/dgsvj0.c
@@ -126,7 +126,7 @@ rblapack_dgsvj0(int argc, VALUE *argv, VALUE self){
   lwork = m;
   eps = NUM2DBL(rblapack_eps);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -136,7 +136,7 @@ rblapack_dgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -145,7 +145,7 @@ rblapack_dgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -154,7 +154,7 @@ rblapack_dgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_sva = rblapack_sva_out__;
   sva = sva_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgsvj1.c b/ext/dgsvj1.c
index b3cf3a1..f4e14ac 100644
--- a/ext/dgsvj1.c
+++ b/ext/dgsvj1.c
@@ -130,7 +130,7 @@ rblapack_dgsvj1(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -140,7 +140,7 @@ rblapack_dgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -149,7 +149,7 @@ rblapack_dgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -158,7 +158,7 @@ rblapack_dgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_sva = rblapack_sva_out__;
   sva = sva_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgtrfs.c b/ext/dgtrfs.c
index 54b8649..9459bbf 100644
--- a/ext/dgtrfs.c
+++ b/ext/dgtrfs.c
@@ -167,19 +167,19 @@ rblapack_dgtrfs(int argc, VALUE *argv, VALUE self){
     rblapack_duf = na_change_type(rblapack_duf, NA_DFLOAT);
   duf = NA_PTR_TYPE(rblapack_duf, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgtsv.c b/ext/dgtsv.c
index b7355d7..411893c 100644
--- a/ext/dgtsv.c
+++ b/ext/dgtsv.c
@@ -89,7 +89,7 @@ rblapack_dgtsv(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_DFLOAT);
   du = NA_PTR_TYPE(rblapack_du, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_dgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_dgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_du = rblapack_du_out__;
   du = du_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgtsvx.c b/ext/dgtsvx.c
index e041315..19608b8 100644
--- a/ext/dgtsvx.c
+++ b/ext/dgtsvx.c
@@ -171,26 +171,26 @@ rblapack_dgtsvx(int argc, VALUE *argv, VALUE self){
     rblapack_dlf = na_change_type(rblapack_dlf, NA_DFLOAT);
   dlf = NA_PTR_TYPE(rblapack_dlf, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dlf_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -199,7 +199,7 @@ rblapack_dgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_dlf = rblapack_dlf_out__;
   dlf = dlf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -208,7 +208,7 @@ rblapack_dgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_duf_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -217,7 +217,7 @@ rblapack_dgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_duf = rblapack_duf_out__;
   duf = duf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_dgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_du2 = rblapack_du2_out__;
   du2 = du2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dgttrf.c b/ext/dgttrf.c
index 7a87af4..218f676 100644
--- a/ext/dgttrf.c
+++ b/ext/dgttrf.c
@@ -77,19 +77,19 @@ rblapack_dgttrf(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_DFLOAT);
   du = NA_PTR_TYPE(rblapack_du, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   du2 = NA_PTR_TYPE(rblapack_du2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_dgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dgttrs.c b/ext/dgttrs.c
index 06f3a86..434c8f5 100644
--- a/ext/dgttrs.c
+++ b/ext/dgttrs.c
@@ -111,7 +111,7 @@ rblapack_dgttrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dgtts2.c b/ext/dgtts2.c
index 51a31ca..8d17eb8 100644
--- a/ext/dgtts2.c
+++ b/ext/dgtts2.c
@@ -109,7 +109,7 @@ rblapack_dgtts2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dhgeqz.c b/ext/dhgeqz.c
index 075ed16..f67cb1b 100644
--- a/ext/dhgeqz.c
+++ b/ext/dhgeqz.c
@@ -133,31 +133,31 @@ rblapack_dhgeqz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -167,7 +167,7 @@ rblapack_dhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -177,7 +177,7 @@ rblapack_dhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -187,7 +187,7 @@ rblapack_dhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dhsein.c b/ext/dhsein.c
index ecb56bd..0ff2d26 100644
--- a/ext/dhsein.c
+++ b/ext/dhsein.c
@@ -136,19 +136,19 @@ rblapack_dhsein(int argc, VALUE *argv, VALUE self){
     rblapack_vl = na_change_type(rblapack_vl, NA_DFLOAT);
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifaill = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifaill = NA_PTR_TYPE(rblapack_ifaill, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifailr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifailr = NA_PTR_TYPE(rblapack_ifailr, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_select_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -157,7 +157,7 @@ rblapack_dhsein(int argc, VALUE *argv, VALUE self){
   rblapack_select = rblapack_select_out__;
   select = select_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_dhsein(int argc, VALUE *argv, VALUE self){
   rblapack_wr = rblapack_wr_out__;
   wr = wr_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_dhsein(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dhseqr.c b/ext/dhseqr.c
index 900ebb3..d52d746 100644
--- a/ext/dhseqr.c
+++ b/ext/dhseqr.c
@@ -99,25 +99,25 @@ rblapack_dhseqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_dhseqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compz,"N") ? 0 : ldz;
     shape[1] = lsame_(&compz,"N") ? 0 : n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dla_gbamv.c b/ext/dla_gbamv.c
index 4ca6148..583bf25 100644
--- a/ext/dla_gbamv.c
+++ b/ext/dla_gbamv.c
@@ -105,7 +105,7 @@ rblapack_dla_gbamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dla_gbrfsx_extended.c b/ext/dla_gbrfsx_extended.c
index 9e886cf..c8792ec 100644
--- a/ext/dla_gbrfsx_extended.c
+++ b/ext/dla_gbrfsx_extended.c
@@ -241,13 +241,13 @@ rblapack_dla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_dy = na_change_type(rblapack_dy, NA_DFLOAT);
   dy = NA_PTR_TYPE(rblapack_dy, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_dla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -267,7 +267,7 @@ rblapack_dla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dla_geamv.c b/ext/dla_geamv.c
index 8d166ba..ca246b5 100644
--- a/ext/dla_geamv.c
+++ b/ext/dla_geamv.c
@@ -95,7 +95,7 @@ rblapack_dla_geamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1+(m-1)*abs(incy) : 1+(n-1)*abs(incy);
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dla_gerfsx_extended.c b/ext/dla_gerfsx_extended.c
index f13d87d..253ff21 100644
--- a/ext/dla_gerfsx_extended.c
+++ b/ext/dla_gerfsx_extended.c
@@ -229,13 +229,13 @@ rblapack_dla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_errs_c = na_change_type(rblapack_errs_c, NA_DFLOAT);
   errs_c = NA_PTR_TYPE(rblapack_errs_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_dla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_n_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_dla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_errs_n = rblapack_errs_n_out__;
   errs_n = errs_n_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dla_lin_berr.c b/ext/dla_lin_berr.c
index 017dae7..8c762d0 100644
--- a/ext/dla_lin_berr.c
+++ b/ext/dla_lin_berr.c
@@ -63,7 +63,7 @@ rblapack_dla_lin_berr(int argc, VALUE *argv, VALUE self){
     rblapack_res = na_change_type(rblapack_res, NA_DFLOAT);
   res = NA_PTR_TYPE(rblapack_res, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dla_porfsx_extended.c b/ext/dla_porfsx_extended.c
index 2578075..98bef87 100644
--- a/ext/dla_porfsx_extended.c
+++ b/ext/dla_porfsx_extended.c
@@ -219,13 +219,13 @@ rblapack_dla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   rcond = NUM2DBL(rblapack_rcond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_dla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_dla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dla_syamv.c b/ext/dla_syamv.c
index 2b9ddc8..a6a1248 100644
--- a/ext/dla_syamv.c
+++ b/ext/dla_syamv.c
@@ -89,7 +89,7 @@ rblapack_dla_syamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dla_syrfsx_extended.c b/ext/dla_syrfsx_extended.c
index cd9e94b..f5ca8be 100644
--- a/ext/dla_syrfsx_extended.c
+++ b/ext/dla_syrfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_dla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_DFLOAT);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_dla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_dla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dla_wwaddw.c b/ext/dla_wwaddw.c
index b48e64a..c309e67 100644
--- a/ext/dla_wwaddw.c
+++ b/ext/dla_wwaddw.c
@@ -69,7 +69,7 @@ rblapack_dla_wwaddw(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_dla_wwaddw(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlabrd.c b/ext/dlabrd.c
index fc4509c..8824896 100644
--- a/ext/dlabrd.c
+++ b/ext/dlabrd.c
@@ -69,45 +69,45 @@ rblapack_dlabrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldx = m;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tauq = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_taup = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = MAX(1,nb);
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlacn2.c b/ext/dlacn2.c
index 43d9ab4..6e58113 100644
--- a/ext/dlacn2.c
+++ b/ext/dlacn2.c
@@ -67,7 +67,7 @@ rblapack_dlacn2(int argc, VALUE *argv, VALUE self){
     rblapack_isave = na_change_type(rblapack_isave, NA_LINT);
   isave = NA_PTR_TYPE(rblapack_isave, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -76,7 +76,7 @@ rblapack_dlacn2(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3;
     rblapack_isave_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlacon.c b/ext/dlacon.c
index 0bae17c..ea4609f 100644
--- a/ext/dlacon.c
+++ b/ext/dlacon.c
@@ -53,7 +53,7 @@ rblapack_dlacon(int argc, VALUE *argv, VALUE self){
   kase = NUM2INT(rblapack_kase);
   est = NUM2DBL(rblapack_est);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlacpy.c b/ext/dlacpy.c
index a86f909..9640562 100644
--- a/ext/dlacpy.c
+++ b/ext/dlacpy.c
@@ -55,7 +55,7 @@ rblapack_dlacpy(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaebz.c b/ext/dlaebz.c
index e192c25..57fe859 100644
--- a/ext/dlaebz.c
+++ b/ext/dlaebz.c
@@ -159,7 +159,7 @@ rblapack_dlaebz(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = (ijob==1||ijob==2) ? 0 : ijob==3 ? minp : 0;
     rblapack_nval_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -168,7 +168,7 @@ rblapack_dlaebz(int argc, VALUE *argv, VALUE self){
   rblapack_nval = rblapack_nval_out__;
   nval = nval_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = mmax;
     shape[1] = 2;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_dlaebz(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ijob==1 ? 0 : (ijob==2||ijob==3) ? mmax : 0;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -187,7 +187,7 @@ rblapack_dlaebz(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = mmax;
     shape[1] = 2;
     rblapack_nab_out__ = na_make_object(NA_LINT, 2, shape, cNArray);
diff --git a/ext/dlaed0.c b/ext/dlaed0.c
index 64d99f8..d548e1f 100644
--- a/ext/dlaed0.c
+++ b/ext/dlaed0.c
@@ -86,7 +86,7 @@ rblapack_dlaed0(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -95,7 +95,7 @@ rblapack_dlaed0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaed1.c b/ext/dlaed1.c
index 02cece5..544ce31 100644
--- a/ext/dlaed1.c
+++ b/ext/dlaed1.c
@@ -85,7 +85,7 @@ rblapack_dlaed1(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   rho = NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -94,7 +94,7 @@ rblapack_dlaed1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -104,7 +104,7 @@ rblapack_dlaed1(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed2.c b/ext/dlaed2.c
index 9fc4856..bfa7035 100644
--- a/ext/dlaed2.c
+++ b/ext/dlaed2.c
@@ -109,37 +109,37 @@ rblapack_dlaed2(int argc, VALUE *argv, VALUE self){
     rblapack_indxq = na_change_type(rblapack_indxq, NA_LINT);
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n1,2)+pow(n-n1,2);
     rblapack_q2 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxc = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxc = NA_PTR_TYPE(rblapack_indxc, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_coltyp = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   coltyp = NA_PTR_TYPE(rblapack_coltyp, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -148,7 +148,7 @@ rblapack_dlaed2(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -158,7 +158,7 @@ rblapack_dlaed2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed3.c b/ext/dlaed3.c
index 9219e84..3d69ebd 100644
--- a/ext/dlaed3.c
+++ b/ext/dlaed3.c
@@ -112,20 +112,20 @@ rblapack_dlaed3(int argc, VALUE *argv, VALUE self){
   q2 = NA_PTR_TYPE(rblapack_q2, doublereal*);
   ldq = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_dlamda_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_dlaed3(int argc, VALUE *argv, VALUE self){
   rblapack_dlamda = rblapack_dlamda_out__;
   dlamda = dlamda_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_w_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed4.c b/ext/dlaed4.c
index ede1086..7350d0f 100644
--- a/ext/dlaed4.c
+++ b/ext/dlaed4.c
@@ -67,7 +67,7 @@ rblapack_dlaed4(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   rho = NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_delta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed5.c b/ext/dlaed5.c
index a0145f7..d33eacd 100644
--- a/ext/dlaed5.c
+++ b/ext/dlaed5.c
@@ -65,7 +65,7 @@ rblapack_dlaed5(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   rho = NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_delta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed7.c b/ext/dlaed7.c
index 39194f9..b189c0c 100644
--- a/ext/dlaed7.c
+++ b/ext/dlaed7.c
@@ -185,13 +185,13 @@ rblapack_dlaed7(int argc, VALUE *argv, VALUE self){
     rblapack_perm = na_change_type(rblapack_perm, NA_LINT);
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_dlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_dlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n,2)+1;
     rblapack_qstore_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -219,7 +219,7 @@ rblapack_dlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_qstore = rblapack_qstore_out__;
   qstore = qstore_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n+2;
     rblapack_qptr_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlaed8.c b/ext/dlaed8.c
index f2fd27f..a138843 100644
--- a/ext/dlaed8.c
+++ b/ext/dlaed8.c
@@ -125,46 +125,46 @@ rblapack_dlaed8(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   cutpnt = NUM2INT(rblapack_cutpnt);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq==0 ? 0 : ldq2;
     shape[1] = icompq==0 ? 0 : n;
     rblapack_q2 = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givnum = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_dlaed8(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq==0 ? 0 : ldq;
     shape[1] = icompq==0 ? 0 : n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaed9.c b/ext/dlaed9.c
index bbe9cbc..a207bdc 100644
--- a/ext/dlaed9.c
+++ b/ext/dlaed9.c
@@ -80,13 +80,13 @@ rblapack_dlaed9(int argc, VALUE *argv, VALUE self){
   rho = NUM2DBL(rblapack_rho);
   lds = MAX( 1, k );
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lds;
     shape[1] = k;
     rblapack_s = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaeda.c b/ext/dlaeda.c
index b2f5424..32b37b0 100644
--- a/ext/dlaeda.c
+++ b/ext/dlaeda.c
@@ -136,7 +136,7 @@ rblapack_dlaeda(int argc, VALUE *argv, VALUE self){
     rblapack_givcol = na_change_type(rblapack_givcol, NA_LINT);
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaein.c b/ext/dlaein.c
index 4b3e259..3b55671 100644
--- a/ext/dlaein.c
+++ b/ext/dlaein.c
@@ -105,7 +105,7 @@ rblapack_dlaein(int argc, VALUE *argv, VALUE self){
   ldb = n+1;
   eps3 = NUM2DBL(rblapack_eps3);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -114,7 +114,7 @@ rblapack_dlaein(int argc, VALUE *argv, VALUE self){
   rblapack_vr = rblapack_vr_out__;
   vr = vr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vi_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaexc.c b/ext/dlaexc.c
index c566201..c6489ef 100644
--- a/ext/dlaexc.c
+++ b/ext/dlaexc.c
@@ -80,7 +80,7 @@ rblapack_dlaexc(int argc, VALUE *argv, VALUE self){
   n2 = NUM2INT(rblapack_n2);
   j1 = NUM2INT(rblapack_j1);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -90,7 +90,7 @@ rblapack_dlaexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlag2s.c b/ext/dlag2s.c
index d2a6d9d..61745a3 100644
--- a/ext/dlag2s.c
+++ b/ext/dlag2s.c
@@ -53,7 +53,7 @@ rblapack_dlag2s(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldsa;
     shape[1] = n;
     rblapack_sa = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/dlagtf.c b/ext/dlagtf.c
index c406343..2aa8584 100644
--- a/ext/dlagtf.c
+++ b/ext/dlagtf.c
@@ -85,19 +85,19 @@ rblapack_dlagtf(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_in = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   in = NA_PTR_TYPE(rblapack_in, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_dlagtf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -115,7 +115,7 @@ rblapack_dlagtf(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlagtm.c b/ext/dlagtm.c
index dd53906..cb5c70d 100644
--- a/ext/dlagtm.c
+++ b/ext/dlagtm.c
@@ -107,7 +107,7 @@ rblapack_dlagtm(int argc, VALUE *argv, VALUE self){
   dl = NA_PTR_TYPE(rblapack_dl, doublereal*);
   beta = NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlagts.c b/ext/dlagts.c
index f4e6837..3c09459 100644
--- a/ext/dlagts.c
+++ b/ext/dlagts.c
@@ -113,7 +113,7 @@ rblapack_dlagts(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlagv2.c b/ext/dlagv2.c
index ab0920a..3a2d364 100644
--- a/ext/dlagv2.c
+++ b/ext/dlagv2.c
@@ -75,25 +75,25 @@ rblapack_dlagv2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = 2;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_dlagv2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = 2;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlahqr.c b/ext/dlahqr.c
index 065ff8e..e25eea5 100644
--- a/ext/dlahqr.c
+++ b/ext/dlahqr.c
@@ -95,19 +95,19 @@ rblapack_dlahqr(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -117,7 +117,7 @@ rblapack_dlahqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? n : 0;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlahr2.c b/ext/dlahr2.c
index 2a4b9ad..5e74325 100644
--- a/ext/dlahr2.c
+++ b/ext/dlahr2.c
@@ -67,27 +67,27 @@ rblapack_dlahr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlahrd.c b/ext/dlahrd.c
index 329ac66..41278d4 100644
--- a/ext/dlahrd.c
+++ b/ext/dlahrd.c
@@ -67,27 +67,27 @@ rblapack_dlahrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaln2.c b/ext/dlaln2.c
index bd2d445..449f190 100644
--- a/ext/dlaln2.c
+++ b/ext/dlaln2.c
@@ -95,7 +95,7 @@ rblapack_dlaln2(int argc, VALUE *argv, VALUE self){
   ldx = na;
   wr = NUM2DBL(rblapack_wr);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nw;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlals0.c b/ext/dlals0.c
index 8fd2458..9ea1cfb 100644
--- a/ext/dlals0.c
+++ b/ext/dlals0.c
@@ -171,7 +171,7 @@ rblapack_dlals0(int argc, VALUE *argv, VALUE self){
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   ldbx = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlalsa.c b/ext/dlalsa.c
index a282af9..e95edc0 100644
--- a/ext/dlalsa.c
+++ b/ext/dlalsa.c
@@ -233,14 +233,14 @@ rblapack_dlalsa(int argc, VALUE *argv, VALUE self){
     rblapack_givnum = na_change_type(rblapack_givnum, NA_DFLOAT);
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbx;
     shape[1] = nrhs;
     rblapack_bx = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   bx = NA_PTR_TYPE(rblapack_bx, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlalsd.c b/ext/dlalsd.c
index 5a7e6f2..78411f9 100644
--- a/ext/dlalsd.c
+++ b/ext/dlalsd.c
@@ -93,7 +93,7 @@ rblapack_dlalsd(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   nlvl = MAX(0, (int)(1.0/log(2.0)*log((double)n/(smlsiz+1))) + 1);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_dlalsd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -111,7 +111,7 @@ rblapack_dlalsd(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlamrg.c b/ext/dlamrg.c
index 55ccd71..c96fc1f 100644
--- a/ext/dlamrg.c
+++ b/ext/dlamrg.c
@@ -59,7 +59,7 @@ rblapack_dlamrg(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n1+n2;
     rblapack_index = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlapll.c b/ext/dlapll.c
index 67b667a..904b538 100644
--- a/ext/dlapll.c
+++ b/ext/dlapll.c
@@ -71,7 +71,7 @@ rblapack_dlapll(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -80,7 +80,7 @@ rblapack_dlapll(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlapmr.c b/ext/dlapmr.c
index 5fdc2f1..992331b 100644
--- a/ext/dlapmr.c
+++ b/ext/dlapmr.c
@@ -63,7 +63,7 @@ rblapack_dlapmr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -73,7 +73,7 @@ rblapack_dlapmr(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlapmt.c b/ext/dlapmt.c
index 3f7e2f7..7aa4047 100644
--- a/ext/dlapmt.c
+++ b/ext/dlapmt.c
@@ -67,7 +67,7 @@ rblapack_dlapmt(int argc, VALUE *argv, VALUE self){
     rblapack_k = na_change_type(rblapack_k, NA_LINT);
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_dlapmt(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlaqgb.c b/ext/dlaqgb.c
index b4bd1fd..90cfc9e 100644
--- a/ext/dlaqgb.c
+++ b/ext/dlaqgb.c
@@ -91,7 +91,7 @@ rblapack_dlaqgb(int argc, VALUE *argv, VALUE self){
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   amax = NUM2DBL(rblapack_amax);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqge.c b/ext/dlaqge.c
index ce16394..0543854 100644
--- a/ext/dlaqge.c
+++ b/ext/dlaqge.c
@@ -83,7 +83,7 @@ rblapack_dlaqge(int argc, VALUE *argv, VALUE self){
   amax = NUM2DBL(rblapack_amax);
   rowcnd = NUM2DBL(rblapack_rowcnd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqp2.c b/ext/dlaqp2.c
index 0785e8c..2de8c4e 100644
--- a/ext/dlaqp2.c
+++ b/ext/dlaqp2.c
@@ -98,13 +98,13 @@ rblapack_dlaqp2(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -114,7 +114,7 @@ rblapack_dlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -123,7 +123,7 @@ rblapack_dlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -132,7 +132,7 @@ rblapack_dlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaqps.c b/ext/dlaqps.c
index ac0797f..a046eb8 100644
--- a/ext/dlaqps.c
+++ b/ext/dlaqps.c
@@ -130,13 +130,13 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   f = NA_PTR_TYPE(rblapack_f, doublereal*);
   kb = nb;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = kb;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -155,7 +155,7 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -164,7 +164,7 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn2 = rblapack_vn2_out__;
   vn2 = vn2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nb;
     rblapack_auxv_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -182,7 +182,7 @@ rblapack_dlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_auxv = rblapack_auxv_out__;
   auxv = auxv_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = nb;
     rblapack_f_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqr0.c b/ext/dlaqr0.c
index c4a387c..b0cd6c6 100644
--- a/ext/dlaqr0.c
+++ b/ext/dlaqr0.c
@@ -99,25 +99,25 @@ rblapack_dlaqr0(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_dlaqr0(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqr1.c b/ext/dlaqr1.c
index 0af4920..a9e0a04 100644
--- a/ext/dlaqr1.c
+++ b/ext/dlaqr1.c
@@ -61,7 +61,7 @@ rblapack_dlaqr1(int argc, VALUE *argv, VALUE self){
   sr1 = NUM2DBL(rblapack_sr1);
   sr2 = NUM2DBL(rblapack_sr2);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaqr2.c b/ext/dlaqr2.c
index c715ae8..23cbc3a 100644
--- a/ext/dlaqr2.c
+++ b/ext/dlaqr2.c
@@ -125,19 +125,19 @@ rblapack_dlaqr2(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   sr = NA_PTR_TYPE(rblapack_sr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_si = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   si = NA_PTR_TYPE(rblapack_si, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_dlaqr2(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqr3.c b/ext/dlaqr3.c
index 7623c30..0604322 100644
--- a/ext/dlaqr3.c
+++ b/ext/dlaqr3.c
@@ -125,19 +125,19 @@ rblapack_dlaqr3(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   sr = NA_PTR_TYPE(rblapack_sr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_si = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   si = NA_PTR_TYPE(rblapack_si, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_dlaqr3(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqr4.c b/ext/dlaqr4.c
index ce2a459..d68864a 100644
--- a/ext/dlaqr4.c
+++ b/ext/dlaqr4.c
@@ -99,25 +99,25 @@ rblapack_dlaqr4(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_dlaqr4(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqr5.c b/ext/dlaqr5.c
index 6cade4b..c009571 100644
--- a/ext/dlaqr5.c
+++ b/ext/dlaqr5.c
@@ -139,7 +139,7 @@ rblapack_dlaqr5(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_sr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -148,7 +148,7 @@ rblapack_dlaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_sr = rblapack_sr_out__;
   sr = sr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_si_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -157,7 +157,7 @@ rblapack_dlaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_si = rblapack_si_out__;
   si = si_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -167,7 +167,7 @@ rblapack_dlaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? ihiz : 0;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqsb.c b/ext/dlaqsb.c
index 5ff05f6..17e3d5b 100644
--- a/ext/dlaqsb.c
+++ b/ext/dlaqsb.c
@@ -75,7 +75,7 @@ rblapack_dlaqsb(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DFLOAT);
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqsp.c b/ext/dlaqsp.c
index fd3a80d..8508103 100644
--- a/ext/dlaqsp.c
+++ b/ext/dlaqsp.c
@@ -69,7 +69,7 @@ rblapack_dlaqsp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaqsy.c b/ext/dlaqsy.c
index fe21f16..e2cfad6 100644
--- a/ext/dlaqsy.c
+++ b/ext/dlaqsy.c
@@ -71,7 +71,7 @@ rblapack_dlaqsy(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlaqtr.c b/ext/dlaqtr.c
index 86ca0d3..ef11808 100644
--- a/ext/dlaqtr.c
+++ b/ext/dlaqtr.c
@@ -86,7 +86,7 @@ rblapack_dlaqtr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlar1v.c b/ext/dlar1v.c
index 6ce2d3a..b27d93f 100644
--- a/ext/dlar1v.c
+++ b/ext/dlar1v.c
@@ -134,13 +134,13 @@ rblapack_dlar1v(int argc, VALUE *argv, VALUE self){
     rblapack_lld = na_change_type(rblapack_lld, NA_DFLOAT);
   lld = NA_PTR_TYPE(rblapack_lld, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlar2v.c b/ext/dlar2v.c
index dbb3a80..f94dc77 100644
--- a/ext/dlar2v.c
+++ b/ext/dlar2v.c
@@ -107,7 +107,7 @@ rblapack_dlar2v(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_dlar2v(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_dlar2v(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarf.c b/ext/dlarf.c
index d7262de..7bcd267 100644
--- a/ext/dlarf.c
+++ b/ext/dlarf.c
@@ -74,7 +74,7 @@ rblapack_dlarf(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlarfb.c b/ext/dlarfb.c
index fe0bf28..ad0d0e3 100644
--- a/ext/dlarfb.c
+++ b/ext/dlarfb.c
@@ -96,7 +96,7 @@ rblapack_dlarfb(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   ldwork = MAX(1,n) ? side = 'l' : MAX(1,m) ? side = 'r' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlarfg.c b/ext/dlarfg.c
index afbd151..1c9af56 100644
--- a/ext/dlarfg.c
+++ b/ext/dlarfg.c
@@ -57,7 +57,7 @@ rblapack_dlarfg(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarfgp.c b/ext/dlarfgp.c
index 4eec4e4..7d127e0 100644
--- a/ext/dlarfgp.c
+++ b/ext/dlarfgp.c
@@ -57,7 +57,7 @@ rblapack_dlarfgp(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarft.c b/ext/dlarft.c
index 2cfe8a1..02a460d 100644
--- a/ext/dlarft.c
+++ b/ext/dlarft.c
@@ -73,14 +73,14 @@ rblapack_dlarft(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlarfx.c b/ext/dlarfx.c
index 6b14b52..67a264d 100644
--- a/ext/dlarfx.c
+++ b/ext/dlarfx.c
@@ -66,7 +66,7 @@ rblapack_dlarfx(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlargv.c b/ext/dlargv.c
index fbb8a57..29e2226 100644
--- a/ext/dlargv.c
+++ b/ext/dlargv.c
@@ -75,13 +75,13 @@ rblapack_dlargv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incc;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -90,7 +90,7 @@ rblapack_dlargv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarnv.c b/ext/dlarnv.c
index 38d5a00..bc1da0c 100644
--- a/ext/dlarnv.c
+++ b/ext/dlarnv.c
@@ -53,13 +53,13 @@ rblapack_dlarnv(int argc, VALUE *argv, VALUE self){
     rblapack_iseed = na_change_type(rblapack_iseed, NA_LINT);
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlarra.c b/ext/dlarra.c
index 95d9ab6..54330cc 100644
--- a/ext/dlarra.c
+++ b/ext/dlarra.c
@@ -83,13 +83,13 @@ rblapack_dlarra(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   spltol = NUM2DBL(rblapack_spltol);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isplit = NA_PTR_TYPE(rblapack_isplit, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dlarra(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrb.c b/ext/dlarrb.c
index 49dc8c6..e96b3fb 100644
--- a/ext/dlarrb.c
+++ b/ext/dlarrb.c
@@ -131,7 +131,7 @@ rblapack_dlarrb(int argc, VALUE *argv, VALUE self){
   rtol2 = NUM2DBL(rblapack_rtol2);
   twist = NUM2INT(rblapack_twist);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -140,7 +140,7 @@ rblapack_dlarrb(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_wgap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -149,7 +149,7 @@ rblapack_dlarrb(int argc, VALUE *argv, VALUE self){
   rblapack_wgap = rblapack_wgap_out__;
   wgap = wgap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrd.c b/ext/dlarrd.c
index e6ede43..3d166c5 100644
--- a/ext/dlarrd.c
+++ b/ext/dlarrd.c
@@ -143,25 +143,25 @@ rblapack_dlarrd(int argc, VALUE *argv, VALUE self){
   gers = NA_PTR_TYPE(rblapack_gers, doublereal*);
   nsplit = NUM2INT(rblapack_nsplit);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   werr = NA_PTR_TYPE(rblapack_werr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indexw = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlarre.c b/ext/dlarre.c
index 6e37e09..5b75b35 100644
--- a/ext/dlarre.c
+++ b/ext/dlarre.c
@@ -127,49 +127,49 @@ rblapack_dlarre(int argc, VALUE *argv, VALUE self){
     rblapack_e2 = na_change_type(rblapack_e2, NA_DFLOAT);
   e2 = NA_PTR_TYPE(rblapack_e2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isplit = NA_PTR_TYPE(rblapack_isplit, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   werr = NA_PTR_TYPE(rblapack_werr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wgap = NA_PTR_TYPE(rblapack_wgap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indexw = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indexw = NA_PTR_TYPE(rblapack_indexw, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_gers = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   gers = NA_PTR_TYPE(rblapack_gers, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_dlarre(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -187,7 +187,7 @@ rblapack_dlarre(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrf.c b/ext/dlarrf.c
index b01fad6..468de82 100644
--- a/ext/dlarrf.c
+++ b/ext/dlarrf.c
@@ -136,19 +136,19 @@ rblapack_dlarrf(int argc, VALUE *argv, VALUE self){
     rblapack_werr = na_change_type(rblapack_werr, NA_DFLOAT);
   werr = NA_PTR_TYPE(rblapack_werr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dplus = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dplus = NA_PTR_TYPE(rblapack_dplus, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_lplus = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   lplus = NA_PTR_TYPE(rblapack_lplus, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = clend-clstrt+1;
     rblapack_wgap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrj.c b/ext/dlarrj.c
index 02d4b09..6f066ab 100644
--- a/ext/dlarrj.c
+++ b/ext/dlarrj.c
@@ -109,7 +109,7 @@ rblapack_dlarrj(int argc, VALUE *argv, VALUE self){
   spdiam = NUM2DBL(rblapack_spdiam);
   offset = NUM2INT(rblapack_offset);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -118,7 +118,7 @@ rblapack_dlarrj(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrr.c b/ext/dlarrr.c
index f1ad800..b40f141 100644
--- a/ext/dlarrr.c
+++ b/ext/dlarrr.c
@@ -57,7 +57,7 @@ rblapack_dlarrr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarrv.c b/ext/dlarrv.c
index 501fb91..5ae6426 100644
--- a/ext/dlarrv.c
+++ b/ext/dlarrv.c
@@ -193,20 +193,20 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
     rblapack_gers = na_change_type(rblapack_gers, NA_DFLOAT);
   gers = NA_PTR_TYPE(rblapack_gers, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -215,7 +215,7 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_l_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -224,7 +224,7 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_l = rblapack_l_out__;
   l = l_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -233,7 +233,7 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -242,7 +242,7 @@ rblapack_dlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_werr = rblapack_werr_out__;
   werr = werr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlarscl2.c b/ext/dlarscl2.c
index e34b713..b89c129 100644
--- a/ext/dlarscl2.c
+++ b/ext/dlarscl2.c
@@ -57,7 +57,7 @@ rblapack_dlarscl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlartv.c b/ext/dlartv.c
index a103d9b..a94c997 100644
--- a/ext/dlartv.c
+++ b/ext/dlartv.c
@@ -97,7 +97,7 @@ rblapack_dlartv(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DFLOAT);
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_dlartv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaruv.c b/ext/dlaruv.c
index 4686214..42186f0 100644
--- a/ext/dlaruv.c
+++ b/ext/dlaruv.c
@@ -49,13 +49,13 @@ rblapack_dlaruv(int argc, VALUE *argv, VALUE self){
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   n = NUM2INT(rblapack_n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlarz.c b/ext/dlarz.c
index 635e7cd..e73946b 100644
--- a/ext/dlarz.c
+++ b/ext/dlarz.c
@@ -78,7 +78,7 @@ rblapack_dlarz(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlarzb.c b/ext/dlarzb.c
index c7f178b..0b5f529 100644
--- a/ext/dlarzb.c
+++ b/ext/dlarzb.c
@@ -100,7 +100,7 @@ rblapack_dlarzb(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_DFLOAT);
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlarzt.c b/ext/dlarzt.c
index 3b14f9f..09e78a5 100644
--- a/ext/dlarzt.c
+++ b/ext/dlarzt.c
@@ -73,14 +73,14 @@ rblapack_dlarzt(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
   v = NA_PTR_TYPE(rblapack_v, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlascl.c b/ext/dlascl.c
index 3786261..163ae06 100644
--- a/ext/dlascl.c
+++ b/ext/dlascl.c
@@ -71,7 +71,7 @@ rblapack_dlascl(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   cfrom = NUM2DBL(rblapack_cfrom);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlascl2.c b/ext/dlascl2.c
index 3d46276..c7937e3 100644
--- a/ext/dlascl2.c
+++ b/ext/dlascl2.c
@@ -57,7 +57,7 @@ rblapack_dlascl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasd0.c b/ext/dlasd0.c
index 06d0f9d..0095a14 100644
--- a/ext/dlasd0.c
+++ b/ext/dlasd0.c
@@ -77,21 +77,21 @@ rblapack_dlasd0(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   ldvt = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd1.c b/ext/dlasd1.c
index e532084..ab546e9 100644
--- a/ext/dlasd1.c
+++ b/ext/dlasd1.c
@@ -105,13 +105,13 @@ rblapack_dlasd1(int argc, VALUE *argv, VALUE self){
     rblapack_vt = na_change_type(rblapack_vt, NA_DFLOAT);
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxq = NA_PTR_TYPE(rblapack_idxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -120,7 +120,7 @@ rblapack_dlasd1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -130,7 +130,7 @@ rblapack_dlasd1(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasd2.c b/ext/dlasd2.c
index 570714e..5477d21 100644
--- a/ext/dlasd2.c
+++ b/ext/dlasd2.c
@@ -131,45 +131,45 @@ rblapack_dlasd2(int argc, VALUE *argv, VALUE self){
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   ldvt2 = m;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dsigma = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dsigma = NA_PTR_TYPE(rblapack_dsigma, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = n;
     rblapack_u2 = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt2;
     shape[1] = n;
     rblapack_vt2 = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt2 = NA_PTR_TYPE(rblapack_vt2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxc = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxc = NA_PTR_TYPE(rblapack_idxc, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_coltyp = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   coltyp = NA_PTR_TYPE(rblapack_coltyp, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_dlasd2(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_dlasd2(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_dlasd2(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd3.c b/ext/dlasd3.c
index 1edc9cd..b6e4bde 100644
--- a/ext/dlasd3.c
+++ b/ext/dlasd3.c
@@ -144,27 +144,27 @@ rblapack_dlasd3(int argc, VALUE *argv, VALUE self){
   u2 = NA_PTR_TYPE(rblapack_u2, doublereal*);
   m = n + sqre;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = n;
     rblapack_u2_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -174,7 +174,7 @@ rblapack_dlasd3(int argc, VALUE *argv, VALUE self){
   rblapack_u2 = rblapack_u2_out__;
   u2 = u2_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt2;
     shape[1] = n;
     rblapack_vt2_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasd4.c b/ext/dlasd4.c
index e1d81df..252fd9e 100644
--- a/ext/dlasd4.c
+++ b/ext/dlasd4.c
@@ -68,7 +68,7 @@ rblapack_dlasd4(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   rho = NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_delta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd5.c b/ext/dlasd5.c
index 30e4580..83926af 100644
--- a/ext/dlasd5.c
+++ b/ext/dlasd5.c
@@ -66,7 +66,7 @@ rblapack_dlasd5(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   rho = NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_delta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd6.c b/ext/dlasd6.c
index 5e5e548..e728a22 100644
--- a/ext/dlasd6.c
+++ b/ext/dlasd6.c
@@ -131,59 +131,59 @@ rblapack_dlasd6(int argc, VALUE *argv, VALUE self){
     rblapack_vl = na_change_type(rblapack_vl, NA_DFLOAT);
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxq = NA_PTR_TYPE(rblapack_idxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_givnum = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_poles = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   poles = NA_PTR_TYPE(rblapack_poles, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_difl = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldgnum : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? 2 : 0;
     rblapack_difr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_z = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nl+nr+1;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -192,7 +192,7 @@ rblapack_dlasd6(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vf_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -201,7 +201,7 @@ rblapack_dlasd6(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd7.c b/ext/dlasd7.c
index 622f4ea..c97505d 100644
--- a/ext/dlasd7.c
+++ b/ext/dlasd7.c
@@ -136,39 +136,39 @@ rblapack_dlasd7(int argc, VALUE *argv, VALUE self){
   ldgnum = n;
   alpha = NUM2DBL(rblapack_alpha);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_z = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dsigma = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dsigma = NA_PTR_TYPE(rblapack_dsigma, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_givnum = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -177,7 +177,7 @@ rblapack_dlasd7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vf_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -186,7 +186,7 @@ rblapack_dlasd7(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasd8.c b/ext/dlasd8.c
index cdb1398..79e1e0e 100644
--- a/ext/dlasd8.c
+++ b/ext/dlasd8.c
@@ -100,26 +100,26 @@ rblapack_dlasd8(int argc, VALUE *argv, VALUE self){
   vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
   lddifr = k;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_difl = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? lddifr : icompq == 0 ? k : 0;
     shape[1] = icompq == 1 ? 2 : 0;
     rblapack_difr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -128,7 +128,7 @@ rblapack_dlasd8(int argc, VALUE *argv, VALUE self){
   rblapack_z = rblapack_z_out__;
   z = z_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_vf_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -137,7 +137,7 @@ rblapack_dlasd8(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_dlasd8(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_dsigma_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasda.c b/ext/dlasda.c
index 88e9ab9..1c059f0 100644
--- a/ext/dlasda.c
+++ b/ext/dlasda.c
@@ -105,94 +105,94 @@ rblapack_dlasda(int argc, VALUE *argv, VALUE self){
   ldgcol = n;
   ldu = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = MAX(1,smlsiz);
     rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = smlsiz+1;
     rblapack_vt = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq == 1 ? n : icompq == 0 ? 1 : 0;
     rblapack_k = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = nlvl;
     rblapack_difl = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldu : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? 2 * nlvl : 0;
     rblapack_difr = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldu : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? nlvl : 0;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = 2 * nlvl;
     rblapack_poles = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   poles = NA_PTR_TYPE(rblapack_poles, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_givptr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   givptr = NA_PTR_TYPE(rblapack_givptr, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2 * nlvl;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = nlvl;
     rblapack_perm = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = 2 * nlvl;
     rblapack_givnum = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq == 1 ? n : icompq == 0 ? 1 : 0;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq==1 ? n : icompq==0 ? 1 : 0;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasdq.c b/ext/dlasdq.c
index 207161a..14d56a5 100644
--- a/ext/dlasdq.c
+++ b/ext/dlasdq.c
@@ -120,7 +120,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -129,7 +129,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = sqre==0 ? n-1 : sqre==1 ? n : 0;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -148,7 +148,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -158,7 +158,7 @@ rblapack_dlasdq(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasdt.c b/ext/dlasdt.c
index 42c8484..11f07b5 100644
--- a/ext/dlasdt.c
+++ b/ext/dlasdt.c
@@ -47,19 +47,19 @@ rblapack_dlasdt(int argc, VALUE *argv, VALUE self){
   n = NUM2INT(rblapack_n);
   msub = NUM2INT(rblapack_msub);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_inode = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   inode = NA_PTR_TYPE(rblapack_inode, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_ndiml = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ndiml = NA_PTR_TYPE(rblapack_ndiml, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_ndimr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dlaset.c b/ext/dlaset.c
index c052974..43f7c97 100644
--- a/ext/dlaset.c
+++ b/ext/dlaset.c
@@ -61,7 +61,7 @@ rblapack_dlaset(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   beta = NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasq1.c b/ext/dlasq1.c
index 9a955bc..d3c9a1a 100644
--- a/ext/dlasq1.c
+++ b/ext/dlasq1.c
@@ -60,7 +60,7 @@ rblapack_dlasq1(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -69,7 +69,7 @@ rblapack_dlasq1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasq2.c b/ext/dlasq2.c
index 8e3b18a..182fab4 100644
--- a/ext/dlasq2.c
+++ b/ext/dlasq2.c
@@ -49,7 +49,7 @@ rblapack_dlasq2(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4*n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlasr.c b/ext/dlasr.c
index 2eb8c47..4c24a6d 100644
--- a/ext/dlasr.c
+++ b/ext/dlasr.c
@@ -85,7 +85,7 @@ rblapack_dlasr(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasrt.c b/ext/dlasrt.c
index 3c6ae7a..a772a2c 100644
--- a/ext/dlasrt.c
+++ b/ext/dlasrt.c
@@ -49,7 +49,7 @@ rblapack_dlasrt(int argc, VALUE *argv, VALUE self){
     rblapack_d = na_change_type(rblapack_d, NA_DFLOAT);
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlaswp.c b/ext/dlaswp.c
index b17531b..aa23e01 100644
--- a/ext/dlaswp.c
+++ b/ext/dlaswp.c
@@ -69,7 +69,7 @@ rblapack_dlaswp(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasy2.c b/ext/dlasy2.c
index 63a0282..4017dab 100644
--- a/ext/dlasy2.c
+++ b/ext/dlasy2.c
@@ -101,7 +101,7 @@ rblapack_dlasy2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = 2;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlasyf.c b/ext/dlasyf.c
index c82b5fb..db62dec 100644
--- a/ext/dlasyf.c
+++ b/ext/dlasyf.c
@@ -62,13 +62,13 @@ rblapack_dlasyf(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlat2s.c b/ext/dlat2s.c
index e1f0f27..4080eea 100644
--- a/ext/dlat2s.c
+++ b/ext/dlat2s.c
@@ -53,7 +53,7 @@ rblapack_dlat2s(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   ldsa = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldsa;
     shape[1] = n;
     rblapack_sa = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/dlatbs.c b/ext/dlatbs.c
index 68c2ecf..b828faa 100644
--- a/ext/dlatbs.c
+++ b/ext/dlatbs.c
@@ -95,7 +95,7 @@ rblapack_dlatbs(int argc, VALUE *argv, VALUE self){
     rblapack_cnorm = na_change_type(rblapack_cnorm, NA_DFLOAT);
   cnorm = NA_PTR_TYPE(rblapack_cnorm, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -104,7 +104,7 @@ rblapack_dlatbs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlatdf.c b/ext/dlatdf.c
index 5bd827a..e7e73ed 100644
--- a/ext/dlatdf.c
+++ b/ext/dlatdf.c
@@ -93,7 +93,7 @@ rblapack_dlatdf(int argc, VALUE *argv, VALUE self){
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   rdsum = NUM2DBL(rblapack_rdsum);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlatps.c b/ext/dlatps.c
index 1a33b11..f92c746 100644
--- a/ext/dlatps.c
+++ b/ext/dlatps.c
@@ -89,7 +89,7 @@ rblapack_dlatps(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dlatps(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlatrd.c b/ext/dlatrd.c
index 050a418..506efcd 100644
--- a/ext/dlatrd.c
+++ b/ext/dlatrd.c
@@ -61,26 +61,26 @@ rblapack_dlatrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldw;
     shape[1] = MAX(n,nb);
     rblapack_w = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlatrs.c b/ext/dlatrs.c
index 427b1a4..84ec594 100644
--- a/ext/dlatrs.c
+++ b/ext/dlatrs.c
@@ -91,7 +91,7 @@ rblapack_dlatrs(int argc, VALUE *argv, VALUE self){
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   normin = StringValueCStr(rblapack_normin)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -100,7 +100,7 @@ rblapack_dlatrs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dlatrz.c b/ext/dlatrz.c
index 8101f9e..45c257f 100644
--- a/ext/dlatrz.c
+++ b/ext/dlatrz.c
@@ -54,13 +54,13 @@ rblapack_dlatrz(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlatzm.c b/ext/dlatzm.c
index 50301b2..7649f8c 100644
--- a/ext/dlatzm.c
+++ b/ext/dlatzm.c
@@ -94,7 +94,7 @@ rblapack_dlatzm(int argc, VALUE *argv, VALUE self){
     rblapack_c1 = na_change_type(rblapack_c1, NA_DFLOAT);
   c1 = NA_PTR_TYPE(rblapack_c1, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0;
     rblapack_c1_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -104,7 +104,7 @@ rblapack_dlatzm(int argc, VALUE *argv, VALUE self){
   rblapack_c1 = rblapack_c1_out__;
   c1 = c1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0;
     rblapack_c2_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlauu2.c b/ext/dlauu2.c
index 3511fba..62a7055 100644
--- a/ext/dlauu2.c
+++ b/ext/dlauu2.c
@@ -51,7 +51,7 @@ rblapack_dlauu2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dlauum.c b/ext/dlauum.c
index 508c83e..cd99c76 100644
--- a/ext/dlauum.c
+++ b/ext/dlauum.c
@@ -51,7 +51,7 @@ rblapack_dlauum(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dopgtr.c b/ext/dopgtr.c
index af3a9ed..fe03bf0 100644
--- a/ext/dopgtr.c
+++ b/ext/dopgtr.c
@@ -66,7 +66,7 @@ rblapack_dopgtr(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   ldq = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dopmtr.c b/ext/dopmtr.c
index 6ef02e6..7618541 100644
--- a/ext/dopmtr.c
+++ b/ext/dopmtr.c
@@ -88,7 +88,7 @@ rblapack_dopmtr(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorbdb.c b/ext/dorbdb.c
index 470be55..458028c 100644
--- a/ext/dorbdb.c
+++ b/ext/dorbdb.c
@@ -138,43 +138,43 @@ rblapack_dorbdb(int argc, VALUE *argv, VALUE self){
     rblapack_x12 = na_change_type(rblapack_x12, NA_DFLOAT);
   x12 = NA_PTR_TYPE(rblapack_x12, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_phi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   phi = NA_PTR_TYPE(rblapack_phi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_taup1 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taup1 = NA_PTR_TYPE(rblapack_taup1, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_taup2 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   taup2 = NA_PTR_TYPE(rblapack_taup2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_tauq1 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tauq1 = NA_PTR_TYPE(rblapack_tauq1, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_tauq2 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tauq2 = NA_PTR_TYPE(rblapack_tauq2, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx11;
     shape[1] = q;
     rblapack_x11_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_dorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x11 = rblapack_x11_out__;
   x11 = x11_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx12;
     shape[1] = m-q;
     rblapack_x12_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -194,7 +194,7 @@ rblapack_dorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x12 = rblapack_x12_out__;
   x12 = x12_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx21;
     shape[1] = q;
     rblapack_x21_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -204,7 +204,7 @@ rblapack_dorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x21 = rblapack_x21_out__;
   x21 = x21_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx22;
     shape[1] = m-q;
     rblapack_x22_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorcsd.c b/ext/dorcsd.c
index 4ead744..e4b7f84 100644
--- a/ext/dorcsd.c
+++ b/ext/dorcsd.c
@@ -147,31 +147,31 @@ rblapack_dorcsd(int argc, VALUE *argv, VALUE self){
   x22 = NA_PTR_TYPE(rblapack_x22, doublereal*);
   ldu2 = lsame_(&jobu2,"Y") ? MAX(1,m-p) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(MIN(MIN(p,m-p),q),m-q);
     rblapack_theta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_u1 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   u1 = NA_PTR_TYPE(rblapack_u1, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_u2 = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_v1t = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   v1t = NA_PTR_TYPE(rblapack_v1t, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_v2t = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dorg2l.c b/ext/dorg2l.c
index bc668fa..eae1774 100644
--- a/ext/dorg2l.c
+++ b/ext/dorg2l.c
@@ -64,7 +64,7 @@ rblapack_dorg2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorg2r.c b/ext/dorg2r.c
index b031c9d..acef140 100644
--- a/ext/dorg2r.c
+++ b/ext/dorg2r.c
@@ -64,7 +64,7 @@ rblapack_dorg2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgbr.c b/ext/dorgbr.c
index 477b3f4..ab68621 100644
--- a/ext/dorgbr.c
+++ b/ext/dorgbr.c
@@ -83,13 +83,13 @@ rblapack_dorgbr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorghr.c b/ext/dorghr.c
index 42be238..4e4eb98 100644
--- a/ext/dorghr.c
+++ b/ext/dorghr.c
@@ -79,13 +79,13 @@ rblapack_dorghr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgl2.c b/ext/dorgl2.c
index 090e476..c4249d9 100644
--- a/ext/dorgl2.c
+++ b/ext/dorgl2.c
@@ -62,7 +62,7 @@ rblapack_dorgl2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorglq.c b/ext/dorglq.c
index 0f1d33d..a381741 100644
--- a/ext/dorglq.c
+++ b/ext/dorglq.c
@@ -75,13 +75,13 @@ rblapack_dorglq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgql.c b/ext/dorgql.c
index 1304b80..601cd84 100644
--- a/ext/dorgql.c
+++ b/ext/dorgql.c
@@ -75,13 +75,13 @@ rblapack_dorgql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgqr.c b/ext/dorgqr.c
index 3966f45..fd17dc4 100644
--- a/ext/dorgqr.c
+++ b/ext/dorgqr.c
@@ -75,13 +75,13 @@ rblapack_dorgqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgr2.c b/ext/dorgr2.c
index 17d0ecc..3bfbc10 100644
--- a/ext/dorgr2.c
+++ b/ext/dorgr2.c
@@ -62,7 +62,7 @@ rblapack_dorgr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgrq.c b/ext/dorgrq.c
index 117249e..b9320b1 100644
--- a/ext/dorgrq.c
+++ b/ext/dorgrq.c
@@ -75,13 +75,13 @@ rblapack_dorgrq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorgtr.c b/ext/dorgtr.c
index 0439401..60aaa6e 100644
--- a/ext/dorgtr.c
+++ b/ext/dorgtr.c
@@ -75,13 +75,13 @@ rblapack_dorgtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorm2l.c b/ext/dorm2l.c
index b89a54f..8c388ba 100644
--- a/ext/dorm2l.c
+++ b/ext/dorm2l.c
@@ -86,7 +86,7 @@ rblapack_dorm2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorm2r.c b/ext/dorm2r.c
index a3d7bf0..5dfdff3 100644
--- a/ext/dorm2r.c
+++ b/ext/dorm2r.c
@@ -86,7 +86,7 @@ rblapack_dorm2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormbr.c b/ext/dormbr.c
index 00fa36d..408c0ef 100644
--- a/ext/dormbr.c
+++ b/ext/dormbr.c
@@ -107,13 +107,13 @@ rblapack_dormbr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormhr.c b/ext/dormhr.c
index 2df3c5e..60eb0c1 100644
--- a/ext/dormhr.c
+++ b/ext/dormhr.c
@@ -101,13 +101,13 @@ rblapack_dormhr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dorml2.c b/ext/dorml2.c
index 743b574..2af0f38 100644
--- a/ext/dorml2.c
+++ b/ext/dorml2.c
@@ -82,7 +82,7 @@ rblapack_dorml2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormlq.c b/ext/dormlq.c
index 5eaf2c8..8aaa58f 100644
--- a/ext/dormlq.c
+++ b/ext/dormlq.c
@@ -93,13 +93,13 @@ rblapack_dormlq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormql.c b/ext/dormql.c
index 0f19a6c..f13aca6 100644
--- a/ext/dormql.c
+++ b/ext/dormql.c
@@ -97,13 +97,13 @@ rblapack_dormql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormqr.c b/ext/dormqr.c
index b6db132..8c56699 100644
--- a/ext/dormqr.c
+++ b/ext/dormqr.c
@@ -97,13 +97,13 @@ rblapack_dormqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormr2.c b/ext/dormr2.c
index 9c60a3f..11547a0 100644
--- a/ext/dormr2.c
+++ b/ext/dormr2.c
@@ -82,7 +82,7 @@ rblapack_dormr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormr3.c b/ext/dormr3.c
index 2e3ebb0..e84c36a 100644
--- a/ext/dormr3.c
+++ b/ext/dormr3.c
@@ -86,7 +86,7 @@ rblapack_dormr3(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormrq.c b/ext/dormrq.c
index 794f540..8a31629 100644
--- a/ext/dormrq.c
+++ b/ext/dormrq.c
@@ -93,13 +93,13 @@ rblapack_dormrq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormrz.c b/ext/dormrz.c
index a8535c3..2521a12 100644
--- a/ext/dormrz.c
+++ b/ext/dormrz.c
@@ -97,13 +97,13 @@ rblapack_dormrz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dormtr.c b/ext/dormtr.c
index ad49ebb..23a1a79 100644
--- a/ext/dormtr.c
+++ b/ext/dormtr.c
@@ -97,13 +97,13 @@ rblapack_dormtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbequ.c b/ext/dpbequ.c
index f226b76..16d5e91 100644
--- a/ext/dpbequ.c
+++ b/ext/dpbequ.c
@@ -59,7 +59,7 @@ rblapack_dpbequ(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpbrfs.c b/ext/dpbrfs.c
index efa5003..39e56eb 100644
--- a/ext/dpbrfs.c
+++ b/ext/dpbrfs.c
@@ -103,19 +103,19 @@ rblapack_dpbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_afb = na_change_type(rblapack_afb, NA_DFLOAT);
   afb = NA_PTR_TYPE(rblapack_afb, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbstf.c b/ext/dpbstf.c
index 7e2343c..a5b5342 100644
--- a/ext/dpbstf.c
+++ b/ext/dpbstf.c
@@ -55,7 +55,7 @@ rblapack_dpbstf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbsv.c b/ext/dpbsv.c
index 1773055..5819f02 100644
--- a/ext/dpbsv.c
+++ b/ext/dpbsv.c
@@ -71,7 +71,7 @@ rblapack_dpbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_dpbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbsvx.c b/ext/dpbsvx.c
index 1945785..af44317 100644
--- a/ext/dpbsvx.c
+++ b/ext/dpbsvx.c
@@ -121,26 +121,26 @@ rblapack_dpbsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_dpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_dpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -169,7 +169,7 @@ rblapack_dpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbtf2.c b/ext/dpbtf2.c
index 05e9a26..2f30dd4 100644
--- a/ext/dpbtf2.c
+++ b/ext/dpbtf2.c
@@ -55,7 +55,7 @@ rblapack_dpbtf2(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbtrf.c b/ext/dpbtrf.c
index 1758487..176cdf4 100644
--- a/ext/dpbtrf.c
+++ b/ext/dpbtrf.c
@@ -55,7 +55,7 @@ rblapack_dpbtrf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpbtrs.c b/ext/dpbtrs.c
index 8cab842..819fd11 100644
--- a/ext/dpbtrs.c
+++ b/ext/dpbtrs.c
@@ -69,7 +69,7 @@ rblapack_dpbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpftrf.c b/ext/dpftrf.c
index b36faaa..98f56eb 100644
--- a/ext/dpftrf.c
+++ b/ext/dpftrf.c
@@ -57,7 +57,7 @@ rblapack_dpftrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpftri.c b/ext/dpftri.c
index db7cd5e..6ce1f9d 100644
--- a/ext/dpftri.c
+++ b/ext/dpftri.c
@@ -57,7 +57,7 @@ rblapack_dpftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpftrs.c b/ext/dpftrs.c
index 3016010..f1e160c 100644
--- a/ext/dpftrs.c
+++ b/ext/dpftrs.c
@@ -71,7 +71,7 @@ rblapack_dpftrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpoequ.c b/ext/dpoequ.c
index ad9a647..cda98ac 100644
--- a/ext/dpoequ.c
+++ b/ext/dpoequ.c
@@ -51,7 +51,7 @@ rblapack_dpoequ(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpoequb.c b/ext/dpoequb.c
index e449681..8704a4f 100644
--- a/ext/dpoequb.c
+++ b/ext/dpoequb.c
@@ -51,7 +51,7 @@ rblapack_dpoequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dporfs.c b/ext/dporfs.c
index edbc410..aceda7f 100644
--- a/ext/dporfs.c
+++ b/ext/dporfs.c
@@ -99,19 +99,19 @@ rblapack_dporfs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dporfsx.c b/ext/dporfsx.c
index 1ca8157..e4f746e 100644
--- a/ext/dporfsx.c
+++ b/ext/dporfsx.c
@@ -137,27 +137,27 @@ rblapack_dporfsx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_DFLOAT);
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_dporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_dporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dposv.c b/ext/dposv.c
index 7ea032b..4afe900 100644
--- a/ext/dposv.c
+++ b/ext/dposv.c
@@ -67,7 +67,7 @@ rblapack_dposv(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_dposv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dposvx.c b/ext/dposvx.c
index d5a04b6..151b64e 100644
--- a/ext/dposvx.c
+++ b/ext/dposvx.c
@@ -117,26 +117,26 @@ rblapack_dposvx(int argc, VALUE *argv, VALUE self){
   af = NA_PTR_TYPE(rblapack_af, doublereal*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_dposvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_dposvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -165,7 +165,7 @@ rblapack_dposvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dposvxx.c b/ext/dposvxx.c
index 49918a0..f97421d 100644
--- a/ext/dposvxx.c
+++ b/ext/dposvxx.c
@@ -137,34 +137,34 @@ rblapack_dposvxx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_DFLOAT);
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -174,7 +174,7 @@ rblapack_dposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_dposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -193,7 +193,7 @@ rblapack_dposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_dposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpotf2.c b/ext/dpotf2.c
index 130dd5f..5aafb31 100644
--- a/ext/dpotf2.c
+++ b/ext/dpotf2.c
@@ -51,7 +51,7 @@ rblapack_dpotf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpotrf.c b/ext/dpotrf.c
index 6c91128..facb9ec 100644
--- a/ext/dpotrf.c
+++ b/ext/dpotrf.c
@@ -51,7 +51,7 @@ rblapack_dpotrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpotri.c b/ext/dpotri.c
index 1374075..6644ca8 100644
--- a/ext/dpotri.c
+++ b/ext/dpotri.c
@@ -51,7 +51,7 @@ rblapack_dpotri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpotrs.c b/ext/dpotrs.c
index 76543f0..1e19ce1 100644
--- a/ext/dpotrs.c
+++ b/ext/dpotrs.c
@@ -65,7 +65,7 @@ rblapack_dpotrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dppequ.c b/ext/dppequ.c
index d0a51d2..8054935 100644
--- a/ext/dppequ.c
+++ b/ext/dppequ.c
@@ -55,7 +55,7 @@ rblapack_dppequ(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpprfs.c b/ext/dpprfs.c
index f32190f..35de3ce 100644
--- a/ext/dpprfs.c
+++ b/ext/dpprfs.c
@@ -97,19 +97,19 @@ rblapack_dpprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dppsv.c b/ext/dppsv.c
index 04b66c3..5219397 100644
--- a/ext/dppsv.c
+++ b/ext/dppsv.c
@@ -69,7 +69,7 @@ rblapack_dppsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_dppsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dppsvx.c b/ext/dppsvx.c
index 452e4d8..bcddcae 100644
--- a/ext/dppsvx.c
+++ b/ext/dppsvx.c
@@ -113,26 +113,26 @@ rblapack_dppsvx(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_dppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -150,7 +150,7 @@ rblapack_dppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -159,7 +159,7 @@ rblapack_dppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpptrf.c b/ext/dpptrf.c
index 1f7d078..6170b6d 100644
--- a/ext/dpptrf.c
+++ b/ext/dpptrf.c
@@ -53,7 +53,7 @@ rblapack_dpptrf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpptri.c b/ext/dpptri.c
index 757d71e..973e87a 100644
--- a/ext/dpptri.c
+++ b/ext/dpptri.c
@@ -53,7 +53,7 @@ rblapack_dpptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpptrs.c b/ext/dpptrs.c
index e0d5ad4..ba9ff00 100644
--- a/ext/dpptrs.c
+++ b/ext/dpptrs.c
@@ -67,7 +67,7 @@ rblapack_dpptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpstf2.c b/ext/dpstf2.c
index 96a06ed..b6c9f66 100644
--- a/ext/dpstf2.c
+++ b/ext/dpstf2.c
@@ -60,13 +60,13 @@ rblapack_dpstf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpstrf.c b/ext/dpstrf.c
index f639e97..7328fb1 100644
--- a/ext/dpstrf.c
+++ b/ext/dpstrf.c
@@ -60,13 +60,13 @@ rblapack_dpstrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dpteqr.c b/ext/dpteqr.c
index f331c5d..84f6c7b 100644
--- a/ext/dpteqr.c
+++ b/ext/dpteqr.c
@@ -80,7 +80,7 @@ rblapack_dpteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_dpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dptrfs.c b/ext/dptrfs.c
index bb38c9e..e809cc9 100644
--- a/ext/dptrfs.c
+++ b/ext/dptrfs.c
@@ -114,19 +114,19 @@ rblapack_dptrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ef = na_change_type(rblapack_ef, NA_DFLOAT);
   ef = NA_PTR_TYPE(rblapack_ef, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dptsv.c b/ext/dptsv.c
index c1d21c3..62cf008 100644
--- a/ext/dptsv.c
+++ b/ext/dptsv.c
@@ -75,7 +75,7 @@ rblapack_dptsv(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_dptsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -93,7 +93,7 @@ rblapack_dptsv(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dptsvx.c b/ext/dptsvx.c
index 780bd65..3c26d48 100644
--- a/ext/dptsvx.c
+++ b/ext/dptsvx.c
@@ -112,26 +112,26 @@ rblapack_dptsvx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -140,7 +140,7 @@ rblapack_dptsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_ef_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpttrf.c b/ext/dpttrf.c
index d128440..26d99a3 100644
--- a/ext/dpttrf.c
+++ b/ext/dpttrf.c
@@ -59,7 +59,7 @@ rblapack_dpttrf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_dpttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dpttrs.c b/ext/dpttrs.c
index 5435023..5fd8cad 100644
--- a/ext/dpttrs.c
+++ b/ext/dpttrs.c
@@ -71,7 +71,7 @@ rblapack_dpttrs(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dptts2.c b/ext/dptts2.c
index d9d6812..50cd0be 100644
--- a/ext/dptts2.c
+++ b/ext/dptts2.c
@@ -69,7 +69,7 @@ rblapack_dptts2(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/drscl.c b/ext/drscl.c
index a5a3b5b..8ce3c87 100644
--- a/ext/drscl.c
+++ b/ext/drscl.c
@@ -55,7 +55,7 @@ rblapack_drscl(int argc, VALUE *argv, VALUE self){
     rblapack_sx = na_change_type(rblapack_sx, NA_DFLOAT);
   sx = NA_PTR_TYPE(rblapack_sx, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_sx_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsbev.c b/ext/dsbev.c
index f5310ac..6bc9682 100644
--- a/ext/dsbev.c
+++ b/ext/dsbev.c
@@ -66,20 +66,20 @@ rblapack_dsbev(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbevd.c b/ext/dsbevd.c
index 3d95dd6..e7964f8 100644
--- a/ext/dsbevd.c
+++ b/ext/dsbevd.c
@@ -89,32 +89,32 @@ rblapack_dsbevd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbevx.c b/ext/dsbevx.c
index 371ea2d..3b2738e 100644
--- a/ext/dsbevx.c
+++ b/ext/dsbevx.c
@@ -100,33 +100,33 @@ rblapack_dsbevx(int argc, VALUE *argv, VALUE self){
   il = NUM2INT(rblapack_il);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbgst.c b/ext/dsbgst.c
index cc606ac..cf1e462 100644
--- a/ext/dsbgst.c
+++ b/ext/dsbgst.c
@@ -82,14 +82,14 @@ rblapack_dsbgst(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldx = lsame_(&vect,"V") ? MAX(1,n) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbgv.c b/ext/dsbgv.c
index 3f684f1..5f0e943 100644
--- a/ext/dsbgv.c
+++ b/ext/dsbgv.c
@@ -86,20 +86,20 @@ rblapack_dsbgv(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldz = lsame_(&jobz,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_dsbgv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbgvd.c b/ext/dsbgvd.c
index cf5163d..92de983 100644
--- a/ext/dsbgvd.c
+++ b/ext/dsbgvd.c
@@ -109,32 +109,32 @@ rblapack_dsbgvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_dsbgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbgvx.c b/ext/dsbgvx.c
index 1532334..9c13be2 100644
--- a/ext/dsbgvx.c
+++ b/ext/dsbgvx.c
@@ -122,45 +122,45 @@ rblapack_dsbgvx(int argc, VALUE *argv, VALUE self){
   vl = NUM2DBL(rblapack_vl);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 7*n;
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 5*n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -170,7 +170,7 @@ rblapack_dsbgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsbtrd.c b/ext/dsbtrd.c
index 4528f40..aafeecf 100644
--- a/ext/dsbtrd.c
+++ b/ext/dsbtrd.c
@@ -80,19 +80,19 @@ rblapack_dsbtrd(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_dsbtrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsfrk.c b/ext/dsfrk.c
index fe753a4..bdb68df 100644
--- a/ext/dsfrk.c
+++ b/ext/dsfrk.c
@@ -85,7 +85,7 @@ rblapack_dsfrk(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nt;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsgesv.c b/ext/dsgesv.c
index 450b220..e5876b3 100644
--- a/ext/dsgesv.c
+++ b/ext/dsgesv.c
@@ -71,20 +71,20 @@ rblapack_dsgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dspev.c b/ext/dspev.c
index 178f1ad..2722e90 100644
--- a/ext/dspev.c
+++ b/ext/dspev.c
@@ -62,20 +62,20 @@ rblapack_dspev(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspevd.c b/ext/dspevd.c
index 3d66802..27c2bec 100644
--- a/ext/dspevd.c
+++ b/ext/dspevd.c
@@ -85,32 +85,32 @@ rblapack_dspevd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspevx.c b/ext/dspevx.c
index 83068f1..9974f2d 100644
--- a/ext/dspevx.c
+++ b/ext/dspevx.c
@@ -92,26 +92,26 @@ rblapack_dspevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspgst.c b/ext/dspgst.c
index 0f16ed1..cc91655 100644
--- a/ext/dspgst.c
+++ b/ext/dspgst.c
@@ -69,7 +69,7 @@ rblapack_dspgst(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspgv.c b/ext/dspgv.c
index 432aeba..d129a39 100644
--- a/ext/dspgv.c
+++ b/ext/dspgv.c
@@ -80,20 +80,20 @@ rblapack_dspgv(int argc, VALUE *argv, VALUE self){
   bp = NA_PTR_TYPE(rblapack_bp, doublereal*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_dspgv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspgvd.c b/ext/dspgvd.c
index a94ce60..2977ed4 100644
--- a/ext/dspgvd.c
+++ b/ext/dspgvd.c
@@ -103,32 +103,32 @@ rblapack_dspgvd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -137,7 +137,7 @@ rblapack_dspgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dspgvx.c b/ext/dspgvx.c
index ae49519..52074e4 100644
--- a/ext/dspgvx.c
+++ b/ext/dspgvx.c
@@ -110,26 +110,26 @@ rblapack_dspgvx(int argc, VALUE *argv, VALUE self){
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   vu = NUM2DBL(rblapack_vu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_dspgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsposv.c b/ext/dsposv.c
index c2c75b1..14b0baf 100644
--- a/ext/dsposv.c
+++ b/ext/dsposv.c
@@ -73,14 +73,14 @@ rblapack_dsposv(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsprfs.c b/ext/dsprfs.c
index 310f12b..deb7afc 100644
--- a/ext/dsprfs.c
+++ b/ext/dsprfs.c
@@ -107,19 +107,19 @@ rblapack_dsprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dspsv.c b/ext/dspsv.c
index e0526c2..5dba4a9 100644
--- a/ext/dspsv.c
+++ b/ext/dspsv.c
@@ -69,13 +69,13 @@ rblapack_dspsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_dspsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dspsvx.c b/ext/dspsvx.c
index 636ac4b..16076d0 100644
--- a/ext/dspsvx.c
+++ b/ext/dspsvx.c
@@ -105,26 +105,26 @@ rblapack_dspsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_dspsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dsptrd.c b/ext/dsptrd.c
index 76f9b68..e0dc30b 100644
--- a/ext/dsptrd.c
+++ b/ext/dsptrd.c
@@ -57,25 +57,25 @@ rblapack_dsptrd(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsptrf.c b/ext/dsptrf.c
index d62bf4b..d0576b4 100644
--- a/ext/dsptrf.c
+++ b/ext/dsptrf.c
@@ -53,13 +53,13 @@ rblapack_dsptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsptri.c b/ext/dsptri.c
index beffe20..674a173 100644
--- a/ext/dsptri.c
+++ b/ext/dsptri.c
@@ -62,7 +62,7 @@ rblapack_dsptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsptrs.c b/ext/dsptrs.c
index eed6cfa..8a98354 100644
--- a/ext/dsptrs.c
+++ b/ext/dsptrs.c
@@ -75,7 +75,7 @@ rblapack_dsptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dstebz.c b/ext/dstebz.c
index 3967e4c..f14ba71 100644
--- a/ext/dstebz.c
+++ b/ext/dstebz.c
@@ -95,19 +95,19 @@ rblapack_dstebz(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dstedc.c b/ext/dstedc.c
index 765e56e..e008dd1 100644
--- a/ext/dstedc.c
+++ b/ext/dstedc.c
@@ -103,19 +103,19 @@ rblapack_dstedc(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -124,7 +124,7 @@ rblapack_dstedc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_dstedc(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dstegr.c b/ext/dstegr.c
index 087dee3..6aef85a 100644
--- a/ext/dstegr.c
+++ b/ext/dstegr.c
@@ -122,38 +122,38 @@ rblapack_dstegr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_dstegr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dstein.c b/ext/dstein.c
index 8d8431e..0cfb20b 100644
--- a/ext/dstein.c
+++ b/ext/dstein.c
@@ -101,14 +101,14 @@ rblapack_dstein(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   ldz = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = m;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dstemr.c b/ext/dstemr.c
index 7d7782c..584f255 100644
--- a/ext/dstemr.c
+++ b/ext/dstemr.c
@@ -126,38 +126,38 @@ rblapack_dstemr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_dstemr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsteqr.c b/ext/dsteqr.c
index a1c6c2c..25a0cd6 100644
--- a/ext/dsteqr.c
+++ b/ext/dsteqr.c
@@ -80,7 +80,7 @@ rblapack_dsteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_dsteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_dsteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsterf.c b/ext/dsterf.c
index 50046d9..0872a9c 100644
--- a/ext/dsterf.c
+++ b/ext/dsterf.c
@@ -59,7 +59,7 @@ rblapack_dsterf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_dsterf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dstev.c b/ext/dstev.c
index fb3b147..5692beb 100644
--- a/ext/dstev.c
+++ b/ext/dstev.c
@@ -68,14 +68,14 @@ rblapack_dstev(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_dstev(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dstevd.c b/ext/dstevd.c
index 5b22fe0..01bedf9 100644
--- a/ext/dstevd.c
+++ b/ext/dstevd.c
@@ -91,26 +91,26 @@ rblapack_dstevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -119,7 +119,7 @@ rblapack_dstevd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dstevr.c b/ext/dstevr.c
index a4f1ca5..fe9651b 100644
--- a/ext/dstevr.c
+++ b/ext/dstevr.c
@@ -122,38 +122,38 @@ rblapack_dstevr(int argc, VALUE *argv, VALUE self){
   iu = NUM2INT(rblapack_iu);
   m = lsame_(&range,"I") ? iu-il+1 : n;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_dstevr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n-1);
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dstevx.c b/ext/dstevx.c
index ac72c75..535a2ec 100644
--- a/ext/dstevx.c
+++ b/ext/dstevx.c
@@ -100,26 +100,26 @@ rblapack_dstevx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   iu = NUM2INT(rblapack_iu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -128,7 +128,7 @@ rblapack_dstevx(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n-1);
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsyequb.c b/ext/dsyequb.c
index d51dac8..15b0919 100644
--- a/ext/dsyequb.c
+++ b/ext/dsyequb.c
@@ -56,7 +56,7 @@ rblapack_dsyequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsyev.c b/ext/dsyev.c
index 8e989b7..00853d1 100644
--- a/ext/dsyev.c
+++ b/ext/dsyev.c
@@ -69,19 +69,19 @@ rblapack_dsyev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsyevd.c b/ext/dsyevd.c
index 2561e3b..443de8d 100644
--- a/ext/dsyevd.c
+++ b/ext/dsyevd.c
@@ -81,25 +81,25 @@ rblapack_dsyevd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsyevr.c b/ext/dsyevr.c
index aa623b6..f5d3dce 100644
--- a/ext/dsyevr.c
+++ b/ext/dsyevr.c
@@ -114,38 +114,38 @@ rblapack_dsyevr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsyevx.c b/ext/dsyevx.c
index 1965d27..74da061 100644
--- a/ext/dsyevx.c
+++ b/ext/dsyevx.c
@@ -103,32 +103,32 @@ rblapack_dsyevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"I") ? iu-il+1 : n;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsygs2.c b/ext/dsygs2.c
index 70b4ebb..eab592c 100644
--- a/ext/dsygs2.c
+++ b/ext/dsygs2.c
@@ -69,7 +69,7 @@ rblapack_dsygs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsygst.c b/ext/dsygst.c
index 1bf79a3..69f6efb 100644
--- a/ext/dsygst.c
+++ b/ext/dsygst.c
@@ -69,7 +69,7 @@ rblapack_dsygst(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsygv.c b/ext/dsygv.c
index c86ea4d..5e2c806 100644
--- a/ext/dsygv.c
+++ b/ext/dsygv.c
@@ -89,19 +89,19 @@ rblapack_dsygv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_dsygv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsygvd.c b/ext/dsygvd.c
index 06d02fd..b80f8da 100644
--- a/ext/dsygvd.c
+++ b/ext/dsygvd.c
@@ -101,25 +101,25 @@ rblapack_dsygvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -129,7 +129,7 @@ rblapack_dsygvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsygvx.c b/ext/dsygvx.c
index 588a0d0..5c614ae 100644
--- a/ext/dsygvx.c
+++ b/ext/dsygvx.c
@@ -123,32 +123,32 @@ rblapack_dsygvx(int argc, VALUE *argv, VALUE self){
   vu = NUM2DBL(rblapack_vu);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -158,7 +158,7 @@ rblapack_dsygvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsyrfs.c b/ext/dsyrfs.c
index 853a013..8ce7fdb 100644
--- a/ext/dsyrfs.c
+++ b/ext/dsyrfs.c
@@ -111,19 +111,19 @@ rblapack_dsyrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsyrfsx.c b/ext/dsyrfsx.c
index 4a4d042..5344f47 100644
--- a/ext/dsyrfsx.c
+++ b/ext/dsyrfsx.c
@@ -149,27 +149,27 @@ rblapack_dsyrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_dsyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_dsyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsysv.c b/ext/dsysv.c
index 50f3288..bab075f 100644
--- a/ext/dsysv.c
+++ b/ext/dsysv.c
@@ -81,19 +81,19 @@ rblapack_dsysv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_dsysv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsysvx.c b/ext/dsysvx.c
index 0fbde05..4e99ec2 100644
--- a/ext/dsysvx.c
+++ b/ext/dsysvx.c
@@ -120,32 +120,32 @@ rblapack_dsysvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_dsysvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/dsysvxx.c b/ext/dsysvxx.c
index 63cad6d..2b21602 100644
--- a/ext/dsysvxx.c
+++ b/ext/dsysvxx.c
@@ -151,34 +151,34 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_dsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dsyswapr.c b/ext/dsyswapr.c
index 64d9848..5a64d3b 100644
--- a/ext/dsyswapr.c
+++ b/ext/dsyswapr.c
@@ -57,7 +57,7 @@ rblapack_dsyswapr(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   i2 = NUM2INT(rblapack_i2);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytd2.c b/ext/dsytd2.c
index ebe6f48..78aad3d 100644
--- a/ext/dsytd2.c
+++ b/ext/dsytd2.c
@@ -57,25 +57,25 @@ rblapack_dsytd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytf2.c b/ext/dsytf2.c
index 87834da..18022e8 100644
--- a/ext/dsytf2.c
+++ b/ext/dsytf2.c
@@ -53,13 +53,13 @@ rblapack_dsytf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytrd.c b/ext/dsytrd.c
index 28cf8e1..486de4e 100644
--- a/ext/dsytrd.c
+++ b/ext/dsytrd.c
@@ -63,31 +63,31 @@ rblapack_dsytrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytrf.c b/ext/dsytrf.c
index de6fe44..9091410 100644
--- a/ext/dsytrf.c
+++ b/ext/dsytrf.c
@@ -59,19 +59,19 @@ rblapack_dsytrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytri.c b/ext/dsytri.c
index f09f41b..ecc4cce 100644
--- a/ext/dsytri.c
+++ b/ext/dsytri.c
@@ -64,7 +64,7 @@ rblapack_dsytri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytri2.c b/ext/dsytri2.c
index 526fdce..0fb3ad7 100644
--- a/ext/dsytri2.c
+++ b/ext/dsytri2.c
@@ -80,7 +80,7 @@ rblapack_dsytri2(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytri2x.c b/ext/dsytri2x.c
index dd9e89f..5faa919 100644
--- a/ext/dsytri2x.c
+++ b/ext/dsytri2x.c
@@ -68,7 +68,7 @@ rblapack_dsytri2x(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   nb = NUM2INT(rblapack_nb);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytrs.c b/ext/dsytrs.c
index c63c166..8596298 100644
--- a/ext/dsytrs.c
+++ b/ext/dsytrs.c
@@ -77,7 +77,7 @@ rblapack_dsytrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dsytrs2.c b/ext/dsytrs2.c
index 6a7393e..25dfda5 100644
--- a/ext/dsytrs2.c
+++ b/ext/dsytrs2.c
@@ -78,7 +78,7 @@ rblapack_dsytrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtbrfs.c b/ext/dtbrfs.c
index b6b3b7d..ce492ab 100644
--- a/ext/dtbrfs.c
+++ b/ext/dtbrfs.c
@@ -95,13 +95,13 @@ rblapack_dtbrfs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtbtrs.c b/ext/dtbtrs.c
index 69e1aed..517fe2b 100644
--- a/ext/dtbtrs.c
+++ b/ext/dtbtrs.c
@@ -77,7 +77,7 @@ rblapack_dtbtrs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, doublereal*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtfsm.c b/ext/dtfsm.c
index beb2e57..8e71dee 100644
--- a/ext/dtfsm.c
+++ b/ext/dtfsm.c
@@ -85,7 +85,7 @@ rblapack_dtfsm(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtftri.c b/ext/dtftri.c
index 0911b8d..b4ccfa4 100644
--- a/ext/dtftri.c
+++ b/ext/dtftri.c
@@ -61,7 +61,7 @@ rblapack_dtftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtfttp.c b/ext/dtfttp.c
index b703342..17d2b0a 100644
--- a/ext/dtfttp.c
+++ b/ext/dtfttp.c
@@ -57,7 +57,7 @@ rblapack_dtfttp(int argc, VALUE *argv, VALUE self){
     rblapack_arf = na_change_type(rblapack_arf, NA_DFLOAT);
   arf = NA_PTR_TYPE(rblapack_arf, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtfttr.c b/ext/dtfttr.c
index 9d35a4e..a92dc1e 100644
--- a/ext/dtfttr.c
+++ b/ext/dtfttr.c
@@ -57,7 +57,7 @@ rblapack_dtfttr(int argc, VALUE *argv, VALUE self){
   n = ((int)sqrtf(8*ldarf+1.0f)-1)/2;
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgevc.c b/ext/dtgevc.c
index c5a5854..b048217 100644
--- a/ext/dtgevc.c
+++ b/ext/dtgevc.c
@@ -114,7 +114,7 @@ rblapack_dtgevc(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DFLOAT);
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -124,7 +124,7 @@ rblapack_dtgevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgex2.c b/ext/dtgex2.c
index 553bb6e..8e06810 100644
--- a/ext/dtgex2.c
+++ b/ext/dtgex2.c
@@ -122,7 +122,7 @@ rblapack_dtgex2(int argc, VALUE *argv, VALUE self){
   n1 = NUM2INT(rblapack_n1);
   lwork = MAX(1,(MAX(n*(n2+n1),(n2+n1)*(n2+n1)*2)));
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -132,7 +132,7 @@ rblapack_dtgex2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -142,7 +142,7 @@ rblapack_dtgex2(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -152,7 +152,7 @@ rblapack_dtgex2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgexc.c b/ext/dtgexc.c
index 4ac5756..46d2095 100644
--- a/ext/dtgexc.c
+++ b/ext/dtgexc.c
@@ -123,13 +123,13 @@ rblapack_dtgexc(int argc, VALUE *argv, VALUE self){
   }
   ilst = NUM2INT(rblapack_ilst);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -139,7 +139,7 @@ rblapack_dtgexc(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -149,7 +149,7 @@ rblapack_dtgexc(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -159,7 +159,7 @@ rblapack_dtgexc(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgsen.c b/ext/dtgsen.c
index f853781..a6ea3df 100644
--- a/ext/dtgsen.c
+++ b/ext/dtgsen.c
@@ -157,43 +157,43 @@ rblapack_dtgsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_dif = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_dtgsen(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -213,7 +213,7 @@ rblapack_dtgsen(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_dtgsen(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgsja.c b/ext/dtgsja.c
index adb8019..3679f01 100644
--- a/ext/dtgsja.c
+++ b/ext/dtgsja.c
@@ -146,19 +146,19 @@ rblapack_dtgsja(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, doublereal*);
   tola = NUM2DBL(rblapack_tola);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -168,7 +168,7 @@ rblapack_dtgsja(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_dtgsja(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_dtgsja(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_dtgsja(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgsna.c b/ext/dtgsna.c
index 4a9433e..3c6eada 100644
--- a/ext/dtgsna.c
+++ b/ext/dtgsna.c
@@ -127,19 +127,19 @@ rblapack_dtgsna(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_dif = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtgsy2.c b/ext/dtgsy2.c
index e0ca45b..7440ec3 100644
--- a/ext/dtgsy2.c
+++ b/ext/dtgsy2.c
@@ -140,7 +140,7 @@ rblapack_dtgsy2(int argc, VALUE *argv, VALUE self){
     rblapack_f = na_change_type(rblapack_f, NA_DFLOAT);
   f = NA_PTR_TYPE(rblapack_f, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_dtgsy2(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtgsyl.c b/ext/dtgsyl.c
index 4e70aff..e700300 100644
--- a/ext/dtgsyl.c
+++ b/ext/dtgsyl.c
@@ -144,13 +144,13 @@ rblapack_dtgsyl(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_dtgsyl(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtprfs.c b/ext/dtprfs.c
index 00dd0ad..f0004e5 100644
--- a/ext/dtprfs.c
+++ b/ext/dtprfs.c
@@ -91,13 +91,13 @@ rblapack_dtprfs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtptri.c b/ext/dtptri.c
index 8540dc2..9e5f6ba 100644
--- a/ext/dtptri.c
+++ b/ext/dtptri.c
@@ -57,7 +57,7 @@ rblapack_dtptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtptrs.c b/ext/dtptrs.c
index 0ed2254..ea5b299 100644
--- a/ext/dtptrs.c
+++ b/ext/dtptrs.c
@@ -75,7 +75,7 @@ rblapack_dtptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtpttf.c b/ext/dtpttf.c
index 7965afa..c08c11c 100644
--- a/ext/dtpttf.c
+++ b/ext/dtpttf.c
@@ -57,7 +57,7 @@ rblapack_dtpttf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtpttr.c b/ext/dtpttr.c
index 498790a..3f5fb29 100644
--- a/ext/dtpttr.c
+++ b/ext/dtpttr.c
@@ -53,7 +53,7 @@ rblapack_dtpttr(int argc, VALUE *argv, VALUE self){
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrevc.c b/ext/dtrevc.c
index 2d6f34b..c23116b 100644
--- a/ext/dtrevc.c
+++ b/ext/dtrevc.c
@@ -102,7 +102,7 @@ rblapack_dtrevc(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_DFLOAT);
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_select_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -111,7 +111,7 @@ rblapack_dtrevc(int argc, VALUE *argv, VALUE self){
   rblapack_select = rblapack_select_out__;
   select = select_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_dtrevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrexc.c b/ext/dtrexc.c
index 9a4ca07..db7e39f 100644
--- a/ext/dtrexc.c
+++ b/ext/dtrexc.c
@@ -76,7 +76,7 @@ rblapack_dtrexc(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -86,7 +86,7 @@ rblapack_dtrexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrrfs.c b/ext/dtrrfs.c
index b9c2788..5857835 100644
--- a/ext/dtrrfs.c
+++ b/ext/dtrrfs.c
@@ -91,13 +91,13 @@ rblapack_dtrrfs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtrsen.c b/ext/dtrsen.c
index 4453e28..8305c81 100644
--- a/ext/dtrsen.c
+++ b/ext/dtrsen.c
@@ -110,25 +110,25 @@ rblapack_dtrsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_dtrsen(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrsna.c b/ext/dtrsna.c
index 7153674..9c5775b 100644
--- a/ext/dtrsna.c
+++ b/ext/dtrsna.c
@@ -104,13 +104,13 @@ rblapack_dtrsna(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, doublereal*);
   ldwork = ((lsame_(&job,"V")) || (lsame_(&job,"B"))) ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_sep = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtrsyl.c b/ext/dtrsyl.c
index 01ea4c8..c530303 100644
--- a/ext/dtrsyl.c
+++ b/ext/dtrsyl.c
@@ -89,7 +89,7 @@ rblapack_dtrsyl(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrti2.c b/ext/dtrti2.c
index a748dab..f3d1a5d 100644
--- a/ext/dtrti2.c
+++ b/ext/dtrti2.c
@@ -55,7 +55,7 @@ rblapack_dtrti2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrtri.c b/ext/dtrtri.c
index bbc94e4..ec2807f 100644
--- a/ext/dtrtri.c
+++ b/ext/dtrtri.c
@@ -55,7 +55,7 @@ rblapack_dtrtri(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrtrs.c b/ext/dtrtrs.c
index e082cf2..ca8ab64 100644
--- a/ext/dtrtrs.c
+++ b/ext/dtrtrs.c
@@ -73,7 +73,7 @@ rblapack_dtrtrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtrttf.c b/ext/dtrttf.c
index cfbc21f..8414cb6 100644
--- a/ext/dtrttf.c
+++ b/ext/dtrttf.c
@@ -55,7 +55,7 @@ rblapack_dtrttf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   uplo = StringValueCStr(rblapack_uplo)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_arf = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtrttp.c b/ext/dtrttp.c
index 88d93ae..875d68c 100644
--- a/ext/dtrttp.c
+++ b/ext/dtrttp.c
@@ -51,7 +51,7 @@ rblapack_dtrttp(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/dtzrqf.c b/ext/dtzrqf.c
index f3033fa..f4f14a1 100644
--- a/ext/dtzrqf.c
+++ b/ext/dtzrqf.c
@@ -51,13 +51,13 @@ rblapack_dtzrqf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublereal*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/dtzrzf.c b/ext/dtzrzf.c
index d81d781..cbe42fd 100644
--- a/ext/dtzrzf.c
+++ b/ext/dtzrzf.c
@@ -63,19 +63,19 @@ rblapack_dtzrzf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/extconf.rb b/ext/extconf.rb
index fb06aa0..0e9d26d 100644
--- a/ext/extconf.rb
+++ b/ext/extconf.rb
@@ -1,3 +1,4 @@
+require "rubygems"
 require "mkmf"
 
 
@@ -61,18 +62,21 @@ unless find_library("lapack", nil)
   end
 end
 
-sitearchdir = RbConfig::CONFIG["sitearchdir"]
-dir_config("narray", sitearchdir, sitearchdir)
-gem_path = nil
-begin
-  require "rubygems"
-  if (spec = Gem.source_index.find_name("narray")).any?
-    gem_path = spec.last.full_gem_path
+if Gem.respond_to?(:find_files)
+  require "rbconfig"
+  so = RbConfig::CONFIG["DLEXT"]
+  narray_include = File.expand_path(File.dirname(Gem.find_files("narray.h")[0]))
+  narray_lib = File.expand_path(File.dirname(Gem.find_files("narray." + so)[0]))
+else
+  gem_home=(`gem environment GEM_HOME`).chomp
+  narray_dir = Dir.glob("#{gem_home}/gems/narray-*").sort[-1]
+  if narray_dir
+    narray_include = narray_lib = narray_dir
+  else
+    sitearchdir = RbConfig::CONFIG["sitearchdir"]
+    narray_include = narray_lib = [ $sitearchdir, $sitearchdir]
   end
-rescue LoadError
-end
-unless find_header("narray.h",gem_path) && have_header("narray_config.h")
-  header_not_found("narray")
 end
+dir_config('narray', narray_include, narray_lib)
 
 create_makefile("numru/lapack")
diff --git a/ext/rb_lapack.c b/ext/rb_lapack.c
index 02d5e18..c25049d 100644
--- a/ext/rb_lapack.c
+++ b/ext/rb_lapack.c
@@ -1,3279 +1,3279 @@
 #include "ruby.h"
 #include "rb_lapack.h"
 
-extern void init_lapack_cbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_checon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_chegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaver(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chla_transtype(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_chseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zcgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clag2z(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_clanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_classq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_claswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_clauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilauplo(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_crot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zrot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_xerbla_array(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_scsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_csptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_csyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_csytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ctzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_cupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_cupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ddisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_shgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_shsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_disnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dlaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlag2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaclr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dlasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlat2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_drscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zcposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_iladlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ddisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_srscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dtbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_dtrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dtzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_dzsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_icmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ieeeck(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaclc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaclr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_iladiag(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_iladlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_iladlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaenv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaprec(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaslc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaslr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilatrans(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilauplo(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilaver(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilazlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ilazlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_iparmq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_izmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_lsamen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_scsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sdisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zdrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgsvj0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dbdsdc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clag2z(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_drscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dzsum1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_shgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_shsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_shseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sisnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_slag2d(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slag2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_iladiag(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_slamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarre(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_slarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarra(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_slasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasd8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_slatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_slauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sopmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sorgrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sorml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_xerbla(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_spteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlagts(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_sptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_spttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_srscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssterf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_sstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssygs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssygv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ssytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sdisna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chla_transtype(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sisnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgejsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_stgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_strttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_stzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_xerbla(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_xerbla_array(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zcgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zcposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zdrscl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slanv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgesvj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ieeeck(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgebd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlanst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilazlc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgghrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slartgs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zhbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaslr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zheevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhegs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zherfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasd6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgtrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasdt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilatrans(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasq6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zhesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zhpgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhsein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgehd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_herfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_herpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_porcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlacrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaesy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlag2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaic1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanhs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlanht(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlansy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gbrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_iladlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlag2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_heamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssygst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zheevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slae2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_porcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgetc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gercond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlaqps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorg2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_hercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaclc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_lsamen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssygvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_classq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zheequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgehrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgtcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_crot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dopgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqr2p(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggglm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dbbcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlapy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlar1v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgtts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlarrv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlartv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlarzt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlasyf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlat2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatbs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatps(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_shseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgglse(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarft(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilazlr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claev2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaneg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlamrg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slapll(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgebak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_porfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsfrk(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaruv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zlatrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlatzm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlauu2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpocon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaenv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgebrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_disnan(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgsvj1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlansp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanhb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesdd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slartgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gercond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhptrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrj(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpotri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zppcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zppsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zppsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpftrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgges(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlahef(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clangb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspgvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacp2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zherfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpotrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarrr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqge(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaeda(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zptrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zptsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zpttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zptts2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zrot(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zspr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zspsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zstein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zstemr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsteqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsymv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaprec(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zsysv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsysvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zsytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggbal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlantb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeql2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgegs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlascl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_checon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_syrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqsb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelss(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_izmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_wwaddw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlahrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbtrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbbrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlapmr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorg2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaln2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasq1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpotf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlapmt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlag2c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_ztgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztgsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztptrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztpttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrsyl(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_ztzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zung2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zung2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunglq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zungtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunm2r(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmlq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmr3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
 extern void init_lapack_zunmrq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zunmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zupgtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-extern void init_lapack_zupmtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
-
-void Init_lapack(){
-  VALUE mNumRu;
-  VALUE mLapack;
-
-  rb_require("narray");
-
-  mNumRu = rb_define_module("NumRu");
-  mLapack = rb_define_module_under(mNumRu, "Lapack");
-
-  sHelp = ID2SYM(rb_intern("help"));
-  sUsage = ID2SYM(rb_intern("usage"));
-
-  rblapack_ZERO = INT2NUM(0);
-
-  init_lapack_cbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgees(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgels(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgges(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_checon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cheequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cheev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cheevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cheevr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cheevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chegs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chegst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chegv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chegvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chegvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cherfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cherfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chetrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chla_transtype(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chpsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chsein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_chseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacrm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clacrt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claed0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claed7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claed8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claesy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claev2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clag2z(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clags2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clahef(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claic1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clals0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clangb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clange(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clangt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanhb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanhe(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanhf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanhp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clanht(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clansb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clansp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clansy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clantb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clantp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clantr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clapll(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqge(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqhb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqhe(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqhp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarcm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarft(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clargv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clartg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clartv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clascl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claset(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clasr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_classq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_claswp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_clauum(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cposv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_crot(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cspmv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cspr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csrscl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cstein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csycon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csymv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csysv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_csytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ctzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cuncsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cung2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cung2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunghr(mLapack, sHelp, sUsage, rblapack_ZERO);
+extern void init_lapack_zuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgees(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtzrzf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaed9(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunbdb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqhp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sposvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasdq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_rpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctfttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_lin_berr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_hercond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqrfp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrevc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlansf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zheevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dhseqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_syrcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slabad(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmql(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_syrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlagtf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeqp3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cptcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dhgeqz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarfb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtrtri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slatrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqsy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsyrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqlf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpoequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slansb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormhr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstegr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_syamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaed7(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_strrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clarfx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgels(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slagv2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgesc2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlals0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlacn2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtpttf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztpcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cuncsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspgvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsysvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dbdsqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zheev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlauum(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggsvp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cptsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chegst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zspsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlacpy(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrsen(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunml2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csyconv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqsp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaed6(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slalsa(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyrfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlalsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgelsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gerfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpoequb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqr5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunmqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsyswapr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_gbrfsx_extended(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cporfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaein(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrttp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggbak(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsytd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaqgb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanhe(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_syrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slarscl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgttrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq4(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgerq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_iparmq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgexc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spbstf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dormrz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slange(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasrt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgebal(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggesx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbgst(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clartg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaed0(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_porcond_x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctzrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetd2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clantr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlatdf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtgsna(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarnv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarfgp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zspmv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlas2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssycon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaebz(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_clangt(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zungqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlar2v(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cstedc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sstevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlaswp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbgv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgbsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slassq(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgttrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctfsm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chegvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunmbr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgeequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgbtf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssyevr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytrs2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlags2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cpstrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctftri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_gbrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zporfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgerfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasq5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarzb(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stbcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlabrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgeqpf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgtsvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_syrcond_c(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgerfsx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssygvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_claed8(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsptrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sla_gbrcond(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ilaslc(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsgesv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytri2x(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chbevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgeev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sorghr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slasy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sspcon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctbrfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dggsvd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slantp(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sormqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgerqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlat2s(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlacrm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_icmax1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaset(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarcm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dposv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gbamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slapy3(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_porpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sggqrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zgbsvxx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chpevd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlaqtr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spotrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgelqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ssytri2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stgex2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_csptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dla_geamv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhetri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_slaqr1(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zunm2l(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctrti2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dtbtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpptri(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_spstf2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_stfttr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpftrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cla_gbrpvgrw(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cgtsv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlagtm(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dsbtrd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlanhf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasd5(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_chetrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggrqf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgeqr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlahqr(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zppequ(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dorcsd(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zpprfs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ctgsy2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_cladiv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zggev(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztrtrs(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlarf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlargv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlarfg(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zsytrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sposvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlahr2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zlascl2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_zhegvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgesvx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dspevx(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_ztgsja(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgetrf(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dgegv(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_sgecon(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+extern void init_lapack_dlasq2(VALUE mLapack, VALUE sHelp, VALUE sUsage, VALUE rblapack_ZERO);
+
+void Init_lapack(){
+  VALUE mNumRu;
+  VALUE mLapack;
+
+  rb_require("narray");
+
+  mNumRu = rb_define_module("NumRu");
+  mLapack = rb_define_module_under(mNumRu, "Lapack");
+
+  sHelp = ID2SYM(rb_intern("help"));
+  sUsage = ID2SYM(rb_intern("usage"));
+
+  rblapack_ZERO = INT2NUM(0);
+
+  init_lapack_slabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlargv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_cungl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunglq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cungtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmhr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunml2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmlq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cunmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cupgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_cupmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ddisna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgees(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacrt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlansy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaset(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chegs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgejsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgels(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesvj(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgges(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slagts(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaver(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlangb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlapll(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaswp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgges(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cherfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dhsein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dhseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_disnan(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlabad(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlacon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlae2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaebz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed6(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaed9(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaeda(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlag2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlag2s(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlags2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlagtf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlagts(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlagv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zcgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssysv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqhe(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slansy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlartv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqhp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clartv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slagtf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd8(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlaic1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaln2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlals0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlamrg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaneg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlangb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlange(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlangt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlansb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlansf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlansp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlanst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlansy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlantb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlantp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlantr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claed0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlanv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlapll(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlapy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlapy3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaqtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claic1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlartg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaruv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlarft(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlargv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarra(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarre(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrj(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarrr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilauplo(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clals0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zrot(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlartg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlartgp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlartgs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlartv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaruv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlas2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlascl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrk(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cheev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstebz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarre(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlapy3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cupmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zherfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacrm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_xerbla_array(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_scsum1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slartv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsysv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slartg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slacon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaic1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasv2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cupgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slas2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cheevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claesy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_shgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clansy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claset(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zstein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsygvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csycon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlantr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsygs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorml2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_shsein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq1(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dlasd7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasd8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasda(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasdq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasdt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaset(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasq6(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasrt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlassq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlaswp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlat2s(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dlauum(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dopgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dopmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorg2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cheevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlascl(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dorg2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorghr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorglq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dorm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormhr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarft(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqge(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dorml2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormlq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dormtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgels(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgges(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssterf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaset(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed7(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_drscl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed9(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csysv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarre(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spotri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaclr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dsbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsposv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cung2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsterf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanhp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clantp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlacon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrk(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zcposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlangt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarra(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlartgs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cstein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaic1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clargv(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstebz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsterf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstevr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dstevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsycon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunml2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dsyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyevr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsygs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsygst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsygv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsygvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsygvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsysv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_iladlc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ddisna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgejsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strti2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_srscl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanht(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaln2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasdt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slapy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cung2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zspr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dtbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlanht(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarcm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssygs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chsein(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_dtrsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dtzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_dzsum1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_icmax1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ieeeck(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaclc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaclr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_iladiag(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_iladlc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_iladlr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaenv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaprec(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaslc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaslr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilatrans(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilauplo(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilaver(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilazlc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ilazlr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_iparmq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_izmax1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_lsamen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_scsum1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sdisna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaebz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlantp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slargv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspgv(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgees(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgejsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgels(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsymv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zdrscl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormlq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgees(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clascl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesvj(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesvj(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgges(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlansy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlag2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sggev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgsvj0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claswp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csrscl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cheevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssygv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dbdsdc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorg2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlassq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cspmv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sopgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhegst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlantb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clag2z(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlangt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_drscl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasdq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsygv(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dhsein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhegs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasda(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sopmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dzsum1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dopmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaneg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slanst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaesy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csymv(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_shgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_shsein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_shseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sisnan(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slabad(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slacon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slae2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaebz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slantr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clange(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clauum(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slaed0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhsein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstebz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanhf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slag2d(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slag2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_iladiag(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slamrg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd8(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrj(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormlq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorglq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgels(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slals0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slauum(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slaed1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed6(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaed9(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaeda(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slag2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slag2d(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slags2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slagtf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slagts(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slagv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaic1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaln2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slals0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slamrg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaneg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slangb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slange(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slangt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slansb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsygst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgels(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlabad(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmlq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanhe(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarra(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slansf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cheequb(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slansp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slanst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slansy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clapll(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clansp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slantb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slantp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slantr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slanv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slapll(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slapy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slapy3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaqtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_xerbla(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slangb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cherfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlansp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlartv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlagts(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlags2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sdisna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zupmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsycon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunghr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chla_transtype(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaeda(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorglq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sisnan(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgejsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarft(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slargv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarra(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarre(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrj(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slartg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slartgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slanv2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd7(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgesvj(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ieeeck(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlanst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsycon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgees(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilazlc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmhr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunghr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slartgs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slartv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaruv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqhe(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slags2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacrt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmlq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaslr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_slarz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slas2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slascl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd6(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasd8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasda(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasdq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasdt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaset(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasq6(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasrt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slassq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasv2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slaswp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_slauum(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sopgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sopmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sorcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorg2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorg2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorghr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorglq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormhr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sorml2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormlq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zheevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasd6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claed7(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqhb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasdt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slascl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilatrans(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sormrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sormtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_spbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spocon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sposv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spotri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_spptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_spttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_srscl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cspr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlartg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_ssfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstebz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssterf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_sstevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlae2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clantb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed7(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlartgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarft(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spocon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_iladlr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlange(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlag2s(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clags2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssygst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgees(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgges(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsygvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlals0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zheevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlantp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slae2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_porcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasda(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorghr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gercond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmhr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_sstevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssycon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyevr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssygs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssygst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssygv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssygvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssygvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssysv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ssytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_stptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strti2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strtri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_strttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacp2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorg2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clasr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlange(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaclc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_strttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_stzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_xerbla(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_xerbla_array(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zcgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zcposv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zdrscl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlapll(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_lsamen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssygvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zgbequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgebd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_classq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zheequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatps(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgees(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgehd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgehrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgels(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgetc2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgges(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgghrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgtcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgtrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhecon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zheequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zheev(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zheevd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zheevr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zheevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhegs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhegst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhegv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhegvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhegvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zherfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zherfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhesv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetd2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhetrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clansb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlassq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_crot(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dopgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqr2p(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunglq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggglm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zhpevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clanhb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clahef(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dbbcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlapy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgtts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlat2c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zhpevx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpgst(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhpsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_shseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgglse(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarft(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilazlr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlansb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqhb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claev2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaneg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlamrg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slapll(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgebak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zung2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasv2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsfrk(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaruv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungql(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaenv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgebrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_disnan(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgsvj1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlansp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlanhb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesdd(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zhpsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhsein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zhseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gbrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slartgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zla_gercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_heamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_hercond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_herfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_herpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_porcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_porfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhptrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrj(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strtri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgges(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlahef(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhegvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlangb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clangb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspgvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacp2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zherfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarrr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zupgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaeda(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaprec(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsysv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggbal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlauum(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlantb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeql2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgegs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlascl(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_checon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_syrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormhr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelss(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_izmax1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlagv2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbbrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorg2r(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunglq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaln2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlag2c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zung2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmrq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zuncsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgees(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaed9(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlanhp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqhp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasdq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_rpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cungqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_lin_berr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_hercond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqrfp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlansb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlansf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zheevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dhseqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_syrcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slangt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slabad(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmql(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zla_syrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zla_wwaddw(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacgv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacrm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlacrt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaed0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlasr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlagtf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeqp3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dhgeqz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqlf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slansb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormhr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_syamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dstevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlaed7(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaed8(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaesy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaev2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlag2c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlags2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlahef(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlahrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaic1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_strrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaswp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgels(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slagv2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgesc2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrc(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlals0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlacn2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cuncsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspgvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dbdsqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zheev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlauum(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggsvp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chegst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlacpy(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunml2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaexc(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlangb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlange(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlangt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlanhb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaed6(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slalsa(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlalsd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgelsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gerfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chegvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasrt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunmqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_gbrfsx_extended(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaein(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggbak(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsytd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlanhe(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlanhf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlanhp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlanhs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlanht(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlansb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlansp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlansy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlantb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlantp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_syrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq4(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgerq2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_iparmq(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlantr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlapll(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlapmr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlapmt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqgb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqge(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqhb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqhe(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqhp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqp2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr0(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr4(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqr5(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqsb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqsp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaqsy(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlar1v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarcm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarfb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarft(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarfx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlargv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dormrz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slange(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasrt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgebal(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggesx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbgst(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clartg(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlaed0(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_porcond_x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetd2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clantr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cunm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlarnv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarrv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarscl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlartg(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlartv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlarzt(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlascl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlaset(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlasr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlassq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarfgp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zspmv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlas2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssycon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaebz(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_clangt(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zungqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlar2v(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sstevr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zlaswp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlasyf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlat2c(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatbs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatdf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatps(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatrd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlatzm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlauu2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zlauum(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbstf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbtrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpftrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpocon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpoequ(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpoequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zporfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbgv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgbsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slassq(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chegvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunmbr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgeequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgbtf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssyevr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlags2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctftri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_gbrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zporfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zposv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zposvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpotf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpotri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpotrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zppcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgerfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasq5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarzb(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlabrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgeqpf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgtsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_syrcond_c(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgerfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssygvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_claed8(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sla_gbrcond(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ilaslc(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsgesv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chbevx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgeev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sorghr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slasy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dggsvd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slantp(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sormqr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgerqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlat2s(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlacrm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_icmax1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaset(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarcm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dposv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gbamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slapy3(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_porpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sggqrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zgbsvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chpevd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlaqtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spotrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgelqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ssytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_csptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dla_geamv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhetri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_slaqr1(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zunm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dtbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_spstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_stfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zpftrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cla_gbrpvgrw(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cgtsv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlagtm(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dsbtrd(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlanhf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasd5(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_chetrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgeqr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlahqr(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zppequ(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dorcsd(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zpprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zppsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zppsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpstf2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpstrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zptcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zptrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zptsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zptsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpttrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zpttrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zptts2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zrot(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zspcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zspmv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zspr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zspsv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zspsvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsptrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zstedc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zstegr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zstein(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zstemr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsteqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsycon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyconv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyequb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsymv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyrfsx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsysv(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsysvx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsysvxx(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsyswapr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytf2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ctgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_cladiv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zggev(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_ztrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlarf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlargv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlarfg(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_zsytrf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytri2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytri2x(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zsytrs2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztbcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztbrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztbtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztfsm(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztftri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztfttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztfttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgex2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgsen(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sposvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlahr2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zlascl2(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_zhegvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgesvx(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dspevx(mLapack, sHelp, sUsage, rblapack_ZERO);
   init_lapack_ztgsja(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgsy2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztgsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztpcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztprfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztptri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztptrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztpttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztpttr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrcon(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrevc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrexc(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrrfs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrsen(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrsna(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrsyl(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrti2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrtri(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrtrs(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrttf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztrttp(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztzrqf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_ztzrzf(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunbdb(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zuncsd(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zung2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zung2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunghr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungl2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunglq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zungtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunm2l(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunm2r(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmbr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmhr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunml2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmlq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmql(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmqr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmr2(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmr3(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmrq(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmrz(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zunmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zupgtr(mLapack, sHelp, sUsage, rblapack_ZERO);
-  init_lapack_zupmtr(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgetrf(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dgegv(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_sgecon(mLapack, sHelp, sUsage, rblapack_ZERO);
+  init_lapack_dlasq2(mLapack, sHelp, sUsage, rblapack_ZERO);
 }
diff --git a/ext/rb_lapack.h b/ext/rb_lapack.h
index e6f2b77..0f1c7a2 100644
--- a/ext/rb_lapack.h
+++ b/ext/rb_lapack.h
@@ -8,7 +8,7 @@
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 #define LG(n) ((int)ceil(log((double)(n))/log(2.0)))
 
-extern logical lsame_(char *ca, const char *cb);
+extern logical lsame_(char *ca, char *cb);
 extern integer ilatrans_(char* trans);
 extern integer ilaenv_(integer* ispec, char* name, char* opts, integer* n1, integer* n2, integer* n3, integer* n4);
 
@@ -16,3 +16,9 @@ extern integer ilaenv_(integer* ispec, char* name, char* opts, integer* n1, inte
 static VALUE sHelp, sUsage;
 static VALUE rblapack_ZERO;
 
+/* for compatibility for NArray and NArray with bigmem patch */
+#ifndef NARRAY_BIGMEM
+typedef int    na_shape_t;
+#endif
+
+
diff --git a/ext/sbbcsd.c b/ext/sbbcsd.c
index 486770b..8b5cf94 100644
--- a/ext/sbbcsd.c
+++ b/ext/sbbcsd.c
@@ -172,55 +172,55 @@ rblapack_sbbcsd(int argc, VALUE *argv, VALUE self){
     rblapack_phi = na_change_type(rblapack_phi, NA_SFLOAT);
   phi = NA_PTR_TYPE(rblapack_phi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b11d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b11d = NA_PTR_TYPE(rblapack_b11d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b11e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b11e = NA_PTR_TYPE(rblapack_b11e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b12d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b12d = NA_PTR_TYPE(rblapack_b12d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b12e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b12e = NA_PTR_TYPE(rblapack_b12e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b21d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b21d = NA_PTR_TYPE(rblapack_b21d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b21e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b21e = NA_PTR_TYPE(rblapack_b21e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b22d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b22d = NA_PTR_TYPE(rblapack_b22d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b22e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   b22e = NA_PTR_TYPE(rblapack_b22e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_sbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_theta = rblapack_theta_out__;
   theta = theta_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu1;
     shape[1] = p;
     rblapack_u1_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -239,7 +239,7 @@ rblapack_sbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u1 = rblapack_u1_out__;
   u1 = u1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = m-p;
     rblapack_u2_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_sbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u2 = rblapack_u2_out__;
   u2 = u2_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv1t;
     shape[1] = q;
     rblapack_v1t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -259,7 +259,7 @@ rblapack_sbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_v1t = rblapack_v1t_out__;
   v1t = v1t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv2t;
     shape[1] = m-q;
     rblapack_v2t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sbdsdc.c b/ext/sbdsdc.c
index 1154430..10f7ffa 100644
--- a/ext/sbdsdc.c
+++ b/ext/sbdsdc.c
@@ -93,33 +93,33 @@ rblapack_sbdsdc(int argc, VALUE *argv, VALUE self){
   ldq = lsame_(&compq,"P") ? n*(11+2*smlsiz+8*(int)(log(((double)n)/(smlsiz+1))/log(2.0))) : 0;
   ldu = lsame_(&compq,"I") ? MAX(1,n) : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compq,"I") ? ldu : 0;
     shape[1] = lsame_(&compq,"I") ? n : 0;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compq,"I") ? ldvt : 0;
     shape[1] = lsame_(&compq,"I") ? n : 0;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&compq,"I") ? ldq : 0;
     rblapack_q = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&compq,"I") ? ldiq : 0;
     rblapack_iq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iq = NA_PTR_TYPE(rblapack_iq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -128,7 +128,7 @@ rblapack_sbdsdc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sbdsqr.c b/ext/sbdsqr.c
index c662ac6..9b956b0 100644
--- a/ext/sbdsqr.c
+++ b/ext/sbdsqr.c
@@ -116,7 +116,7 @@ rblapack_sbdsqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_sbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_sbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_sbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_sbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sdisna.c b/ext/sdisna.c
index bdf43d5..1e6d0b4 100644
--- a/ext/sdisna.c
+++ b/ext/sdisna.c
@@ -53,7 +53,7 @@ rblapack_sdisna(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, real*);
   n = NUM2INT(rblapack_n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lsame_(&job,"E") ? m : ((lsame_(&job,"L")) || (lsame_(&job,"R"))) ? MIN(m,n) : 0;
     rblapack_sep = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgbbrd.c b/ext/sgbbrd.c
index c9f7731..9869adf 100644
--- a/ext/sgbbrd.c
+++ b/ext/sgbbrd.c
@@ -90,33 +90,33 @@ rblapack_sgbbrd(int argc, VALUE *argv, VALUE self){
   m = ldab;
   ldq = ((lsame_(&vect,"Q")) || (lsame_(&vect,"B"))) ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = m;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldpt;
     shape[1] = n;
     rblapack_pt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   pt = NA_PTR_TYPE(rblapack_pt, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -126,7 +126,7 @@ rblapack_sgbbrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbequ.c b/ext/sgbequ.c
index 362430d..1dce7be 100644
--- a/ext/sgbequ.c
+++ b/ext/sgbequ.c
@@ -67,13 +67,13 @@ rblapack_sgbequ(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,m);
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgbequb.c b/ext/sgbequb.c
index daa637c..cd5c9e7 100644
--- a/ext/sgbequb.c
+++ b/ext/sgbequb.c
@@ -65,13 +65,13 @@ rblapack_sgbequb(int argc, VALUE *argv, VALUE self){
   ku = NUM2INT(rblapack_ku);
   m = ldab;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgbrfs.c b/ext/sgbrfs.c
index 8133073..0c612d1 100644
--- a/ext/sgbrfs.c
+++ b/ext/sgbrfs.c
@@ -119,19 +119,19 @@ rblapack_sgbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbrfsx.c b/ext/sgbrfsx.c
index f7b3f4d..1e5cf2d 100644
--- a/ext/sgbrfsx.c
+++ b/ext/sgbrfsx.c
@@ -171,27 +171,27 @@ rblapack_sgbrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_r = na_change_type(rblapack_r, NA_SFLOAT);
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_sgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -209,7 +209,7 @@ rblapack_sgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -219,7 +219,7 @@ rblapack_sgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgbsv.c b/ext/sgbsv.c
index def3fe1..5cc5af6 100644
--- a/ext/sgbsv.c
+++ b/ext/sgbsv.c
@@ -73,13 +73,13 @@ rblapack_sgbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -89,7 +89,7 @@ rblapack_sgbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbsvx.c b/ext/sgbsvx.c
index 9b99bc9..8005df2 100644
--- a/ext/sgbsvx.c
+++ b/ext/sgbsvx.c
@@ -176,32 +176,32 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
     afb = NA_PTR_TYPE(rblapack_afb, real*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3*n;
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -211,7 +211,7 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -234,7 +234,7 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -245,7 +245,7 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -256,7 +256,7 @@ rblapack_sgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbsvxx.c b/ext/sgbsvxx.c
index 4ea36b1..88a8b20 100644
--- a/ext/sgbsvxx.c
+++ b/ext/sgbsvxx.c
@@ -173,34 +173,34 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   params = NA_PTR_TYPE(rblapack_params, real*);
   equed = StringValueCStr(rblapack_equed)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -220,7 +220,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -238,7 +238,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -247,7 +247,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_sgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgbtf2.c b/ext/sgbtf2.c
index b282307..17070f1 100644
--- a/ext/sgbtf2.c
+++ b/ext/sgbtf2.c
@@ -61,13 +61,13 @@ rblapack_sgbtf2(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbtrf.c b/ext/sgbtrf.c
index 623eba3..17caf49 100644
--- a/ext/sgbtrf.c
+++ b/ext/sgbtrf.c
@@ -61,13 +61,13 @@ rblapack_sgbtrf(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgbtrs.c b/ext/sgbtrs.c
index cce1eca..0ad5508 100644
--- a/ext/sgbtrs.c
+++ b/ext/sgbtrs.c
@@ -85,7 +85,7 @@ rblapack_sgbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgebak.c b/ext/sgebak.c
index 0c1a3f0..1abf22b 100644
--- a/ext/sgebak.c
+++ b/ext/sgebak.c
@@ -75,7 +75,7 @@ rblapack_sgebak(int argc, VALUE *argv, VALUE self){
   v = NA_PTR_TYPE(rblapack_v, real*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgebal.c b/ext/sgebal.c
index a9be59c..94a097e 100644
--- a/ext/sgebal.c
+++ b/ext/sgebal.c
@@ -57,13 +57,13 @@ rblapack_sgebal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgebd2.c b/ext/sgebd2.c
index 3eb75f1..fbaacbf 100644
--- a/ext/sgebd2.c
+++ b/ext/sgebd2.c
@@ -60,31 +60,31 @@ rblapack_sgebd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgebrd.c b/ext/sgebrd.c
index 57ccc86..9d24623 100644
--- a/ext/sgebrd.c
+++ b/ext/sgebrd.c
@@ -71,37 +71,37 @@ rblapack_sgebrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeequ.c b/ext/sgeequ.c
index 1271bc9..5a9f107 100644
--- a/ext/sgeequ.c
+++ b/ext/sgeequ.c
@@ -57,13 +57,13 @@ rblapack_sgeequ(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgeequb.c b/ext/sgeequb.c
index a05fca0..add0e8f 100644
--- a/ext/sgeequb.c
+++ b/ext/sgeequb.c
@@ -57,13 +57,13 @@ rblapack_sgeequb(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgees.c b/ext/sgees.c
index 00734fd..3562fcc 100644
--- a/ext/sgees.c
+++ b/ext/sgees.c
@@ -94,32 +94,32 @@ rblapack_sgees(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeesx.c b/ext/sgeesx.c
index c538d95..fdb8be2 100644
--- a/ext/sgeesx.c
+++ b/ext/sgeesx.c
@@ -108,38 +108,38 @@ rblapack_sgeesx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeev.c b/ext/sgeev.c
index 8137ae2..cccf088 100644
--- a/ext/sgeev.c
+++ b/ext/sgeev.c
@@ -79,39 +79,39 @@ rblapack_sgeev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeevx.c b/ext/sgeevx.c
index 85493f0..3de6141 100644
--- a/ext/sgeevx.c
+++ b/ext/sgeevx.c
@@ -100,57 +100,57 @@ rblapack_sgeevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgegs.c b/ext/sgegs.c
index 7565878..c14310c 100644
--- a/ext/sgegs.c
+++ b/ext/sgegs.c
@@ -97,45 +97,45 @@ rblapack_sgegs(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_sgegs(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgegv.c b/ext/sgegv.c
index 3e863a9..b88e792 100644
--- a/ext/sgegv.c
+++ b/ext/sgegv.c
@@ -97,45 +97,45 @@ rblapack_sgegv(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_sgegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgehd2.c b/ext/sgehd2.c
index d661030..2917ab1 100644
--- a/ext/sgehd2.c
+++ b/ext/sgehd2.c
@@ -58,13 +58,13 @@ rblapack_sgehd2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgehrd.c b/ext/sgehrd.c
index 420cc08..d510fb0 100644
--- a/ext/sgehrd.c
+++ b/ext/sgehrd.c
@@ -69,19 +69,19 @@ rblapack_sgehrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgejsv.c b/ext/sgejsv.c
index 7157d20..7817826 100644
--- a/ext/sgejsv.c
+++ b/ext/sgejsv.c
@@ -108,33 +108,33 @@ rblapack_sgejsv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   sva = NA_PTR_TYPE(rblapack_sva, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m+3*n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lwork;
     rblapack_work_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgelq2.c b/ext/sgelq2.c
index ff7fa9b..a2f0006 100644
--- a/ext/sgelq2.c
+++ b/ext/sgelq2.c
@@ -52,13 +52,13 @@ rblapack_sgelq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgelqf.c b/ext/sgelqf.c
index a7ed29b..09b98b5 100644
--- a/ext/sgelqf.c
+++ b/ext/sgelqf.c
@@ -65,19 +65,19 @@ rblapack_sgelqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgels.c b/ext/sgels.c
index 44be155..fec51ee 100644
--- a/ext/sgels.c
+++ b/ext/sgels.c
@@ -83,13 +83,13 @@ rblapack_sgels(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_sgels(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgelsd.c b/ext/sgelsd.c
index 94bfe1b..016bbfd 100644
--- a/ext/sgelsd.c
+++ b/ext/sgelsd.c
@@ -96,19 +96,19 @@ rblapack_sgelsd(int argc, VALUE *argv, VALUE self){
   }
   liwork = 3*(MIN(m,n))*nlvl+11*(MIN(m,n));
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgelss.c b/ext/sgelss.c
index 2212b06..664ec03 100644
--- a/ext/sgelss.c
+++ b/ext/sgelss.c
@@ -87,19 +87,19 @@ rblapack_sgelss(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_sgelss(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgelsx.c b/ext/sgelsx.c
index 63e2ac1..b975f8b 100644
--- a/ext/sgelsx.c
+++ b/ext/sgelsx.c
@@ -88,7 +88,7 @@ rblapack_sgelsx(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_sgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -108,7 +108,7 @@ rblapack_sgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sgelsy.c b/ext/sgelsy.c
index 8b656e9..644ff25 100644
--- a/ext/sgelsy.c
+++ b/ext/sgelsy.c
@@ -99,13 +99,13 @@ rblapack_sgelsy(int argc, VALUE *argv, VALUE self){
   rcond = (real)NUM2DBL(rblapack_rcond);
   ldb = MAX(m,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_sgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_sgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sgeql2.c b/ext/sgeql2.c
index 301b527..115a6cb 100644
--- a/ext/sgeql2.c
+++ b/ext/sgeql2.c
@@ -54,13 +54,13 @@ rblapack_sgeql2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeqlf.c b/ext/sgeqlf.c
index 91d17e8..29acfb1 100644
--- a/ext/sgeqlf.c
+++ b/ext/sgeqlf.c
@@ -65,19 +65,19 @@ rblapack_sgeqlf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeqp3.c b/ext/sgeqp3.c
index 6d4696e..68ec1e8 100644
--- a/ext/sgeqp3.c
+++ b/ext/sgeqp3.c
@@ -79,19 +79,19 @@ rblapack_sgeqp3(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -101,7 +101,7 @@ rblapack_sgeqp3(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sgeqpf.c b/ext/sgeqpf.c
index 22dcfcc..968684f 100644
--- a/ext/sgeqpf.c
+++ b/ext/sgeqpf.c
@@ -68,13 +68,13 @@ rblapack_sgeqpf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -84,7 +84,7 @@ rblapack_sgeqpf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sgeqr2.c b/ext/sgeqr2.c
index a428985..e71905c 100644
--- a/ext/sgeqr2.c
+++ b/ext/sgeqr2.c
@@ -54,13 +54,13 @@ rblapack_sgeqr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeqr2p.c b/ext/sgeqr2p.c
index 3612aa4..81f98bc 100644
--- a/ext/sgeqr2p.c
+++ b/ext/sgeqr2p.c
@@ -54,13 +54,13 @@ rblapack_sgeqr2p(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeqrf.c b/ext/sgeqrf.c
index d78c9b5..c05d713 100644
--- a/ext/sgeqrf.c
+++ b/ext/sgeqrf.c
@@ -65,19 +65,19 @@ rblapack_sgeqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgeqrfp.c b/ext/sgeqrfp.c
index 4571f25..5ee45af 100644
--- a/ext/sgeqrfp.c
+++ b/ext/sgeqrfp.c
@@ -65,19 +65,19 @@ rblapack_sgeqrfp(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgerfs.c b/ext/sgerfs.c
index 11dcc49..6017b88 100644
--- a/ext/sgerfs.c
+++ b/ext/sgerfs.c
@@ -111,19 +111,19 @@ rblapack_sgerfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgerfsx.c b/ext/sgerfsx.c
index 6687e46..def83d0 100644
--- a/ext/sgerfsx.c
+++ b/ext/sgerfsx.c
@@ -159,27 +159,27 @@ rblapack_sgerfsx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -189,7 +189,7 @@ rblapack_sgerfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgerq2.c b/ext/sgerq2.c
index 8285bfd..6e903a8 100644
--- a/ext/sgerq2.c
+++ b/ext/sgerq2.c
@@ -52,13 +52,13 @@ rblapack_sgerq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgerqf.c b/ext/sgerqf.c
index 8c64b53..b75b114 100644
--- a/ext/sgerqf.c
+++ b/ext/sgerqf.c
@@ -65,19 +65,19 @@ rblapack_sgerqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgesc2.c b/ext/sgesc2.c
index 2af9ca3..8616159 100644
--- a/ext/sgesc2.c
+++ b/ext/sgesc2.c
@@ -83,7 +83,7 @@ rblapack_sgesc2(int argc, VALUE *argv, VALUE self){
     rblapack_jpiv = na_change_type(rblapack_jpiv, NA_LINT);
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgesdd.c b/ext/sgesdd.c
index be6fc99..e648dbd 100644
--- a/ext/sgesdd.c
+++ b/ext/sgesdd.c
@@ -78,33 +78,33 @@ rblapack_sgesdd(int argc, VALUE *argv, VALUE self){
   ldu = (lsame_(&jobz,"S") || lsame_(&jobz,"A") || (lsame_(&jobz,"O") && m < n)) ? m : 1;
   ucol = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m < n)))) ? m : lsame_(&jobz,"S") ? MIN(m,n) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = ucol;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgesv.c b/ext/sgesv.c
index 300033a..b6e9375 100644
--- a/ext/sgesv.c
+++ b/ext/sgesv.c
@@ -65,13 +65,13 @@ rblapack_sgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_sgesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgesvd.c b/ext/sgesvd.c
index 321b2d7..157a051 100644
--- a/ext/sgesvd.c
+++ b/ext/sgesvd.c
@@ -79,33 +79,33 @@ rblapack_sgesvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = lsame_(&jobu,"A") ? m : lsame_(&jobu,"S") ? MIN(m,n) : 0;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = MAX(n, MIN(m,n));
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgesvj.c b/ext/sgesvj.c
index a9914b0..4161174 100644
--- a/ext/sgesvj.c
+++ b/ext/sgesvj.c
@@ -105,13 +105,13 @@ rblapack_sgesvj(int argc, VALUE *argv, VALUE self){
     rblapack_work = na_change_type(rblapack_work, NA_SFLOAT);
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   sva = NA_PTR_TYPE(rblapack_sva, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_sgesvj(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_sgesvj(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lwork;
     rblapack_work_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgesvx.c b/ext/sgesvx.c
index efdf379..f2ba5b3 100644
--- a/ext/sgesvx.c
+++ b/ext/sgesvx.c
@@ -168,32 +168,32 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
     af = NA_PTR_TYPE(rblapack_af, real*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4*n;
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -237,7 +237,7 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -248,7 +248,7 @@ rblapack_sgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgesvxx.c b/ext/sgesvxx.c
index 80bc68c..769f2a9 100644
--- a/ext/sgesvxx.c
+++ b/ext/sgesvxx.c
@@ -165,34 +165,34 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, real*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -202,7 +202,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -212,7 +212,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -221,7 +221,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -230,7 +230,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -239,7 +239,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_sgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgetc2.c b/ext/sgetc2.c
index d74e28d..e190756 100644
--- a/ext/sgetc2.c
+++ b/ext/sgetc2.c
@@ -51,19 +51,19 @@ rblapack_sgetc2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgetf2.c b/ext/sgetf2.c
index eca3058..cbfba7a 100644
--- a/ext/sgetf2.c
+++ b/ext/sgetf2.c
@@ -53,13 +53,13 @@ rblapack_sgetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgetrf.c b/ext/sgetrf.c
index 7c82a42..ffe6c55 100644
--- a/ext/sgetrf.c
+++ b/ext/sgetrf.c
@@ -53,13 +53,13 @@ rblapack_sgetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgetri.c b/ext/sgetri.c
index fd60ae7..ebac7ad 100644
--- a/ext/sgetri.c
+++ b/ext/sgetri.c
@@ -71,13 +71,13 @@ rblapack_sgetri(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgetrs.c b/ext/sgetrs.c
index 51bc64e..3b5c485 100644
--- a/ext/sgetrs.c
+++ b/ext/sgetrs.c
@@ -77,7 +77,7 @@ rblapack_sgetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggbak.c b/ext/sggbak.c
index ca1e741..626d235 100644
--- a/ext/sggbak.c
+++ b/ext/sggbak.c
@@ -87,7 +87,7 @@ rblapack_sggbak(int argc, VALUE *argv, VALUE self){
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggbal.c b/ext/sggbal.c
index e950a62..944db3c 100644
--- a/ext/sggbal.c
+++ b/ext/sggbal.c
@@ -76,19 +76,19 @@ rblapack_sggbal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_sggbal(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgges.c b/ext/sgges.c
index ca80532..efdd07b 100644
--- a/ext/sgges.c
+++ b/ext/sgges.c
@@ -121,45 +121,45 @@ rblapack_sgges(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -169,7 +169,7 @@ rblapack_sgges(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggesx.c b/ext/sggesx.c
index 4366c7c..d7813d5 100644
--- a/ext/sggesx.c
+++ b/ext/sggesx.c
@@ -140,57 +140,57 @@ rblapack_sggesx(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -200,7 +200,7 @@ rblapack_sggesx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggev.c b/ext/sggev.c
index c99b3da..ffb8afb 100644
--- a/ext/sggev.c
+++ b/ext/sggev.c
@@ -97,45 +97,45 @@ rblapack_sggev(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_sggev(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggevx.c b/ext/sggevx.c
index e8c4b40..961af7c 100644
--- a/ext/sggevx.c
+++ b/ext/sggevx.c
@@ -123,69 +123,69 @@ rblapack_sggevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -195,7 +195,7 @@ rblapack_sggevx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggglm.c b/ext/sggglm.c
index 06955f3..ff5e8aa 100644
--- a/ext/sggglm.c
+++ b/ext/sggglm.c
@@ -93,25 +93,25 @@ rblapack_sggglm(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_x = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_y = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_sggglm(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_sggglm(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgghrd.c b/ext/sgghrd.c
index 94bd0cd..cb9bccb 100644
--- a/ext/sgghrd.c
+++ b/ext/sgghrd.c
@@ -111,7 +111,7 @@ rblapack_sgghrd(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SFLOAT);
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_sgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_sgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -141,7 +141,7 @@ rblapack_sgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgglse.c b/ext/sgglse.c
index ac9874d..8282ae2 100644
--- a/ext/sgglse.c
+++ b/ext/sgglse.c
@@ -105,19 +105,19 @@ rblapack_sgglse(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_sgglse(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_sgglse(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_sgglse(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sggqrf.c b/ext/sggqrf.c
index 257aeb5..b158d32 100644
--- a/ext/sggqrf.c
+++ b/ext/sggqrf.c
@@ -83,25 +83,25 @@ rblapack_sggqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,m);
     rblapack_taua = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,p);
     rblapack_taub = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_sggqrf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggrqf.c b/ext/sggrqf.c
index 096a39a..ad158ef 100644
--- a/ext/sggrqf.c
+++ b/ext/sggrqf.c
@@ -87,25 +87,25 @@ rblapack_sggrqf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taua = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(p,n);
     rblapack_taub = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_sggrqf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggsvd.c b/ext/sggsvd.c
index dd9cdeb..c22b62c 100644
--- a/ext/sggsvd.c
+++ b/ext/sggsvd.c
@@ -102,46 +102,46 @@ rblapack_sggsvd(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -151,7 +151,7 @@ rblapack_sggsvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sggsvp.c b/ext/sggsvp.c
index f8cdc5e..10c6b41 100644
--- a/ext/sggsvp.c
+++ b/ext/sggsvp.c
@@ -106,28 +106,28 @@ rblapack_sggsvp(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_sggsvp(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgsvj0.c b/ext/sgsvj0.c
index 6884ab3..52717f1 100644
--- a/ext/sgsvj0.c
+++ b/ext/sgsvj0.c
@@ -126,7 +126,7 @@ rblapack_sgsvj0(int argc, VALUE *argv, VALUE self){
   lwork = m;
   eps = NUM2INT(rblapack_eps);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -136,7 +136,7 @@ rblapack_sgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -145,7 +145,7 @@ rblapack_sgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -154,7 +154,7 @@ rblapack_sgsvj0(int argc, VALUE *argv, VALUE self){
   rblapack_sva = rblapack_sva_out__;
   sva = sva_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgsvj1.c b/ext/sgsvj1.c
index d5fea95..d9a0a04 100644
--- a/ext/sgsvj1.c
+++ b/ext/sgsvj1.c
@@ -130,7 +130,7 @@ rblapack_sgsvj1(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SFLOAT);
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -140,7 +140,7 @@ rblapack_sgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -149,7 +149,7 @@ rblapack_sgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_sva_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -158,7 +158,7 @@ rblapack_sgsvj1(int argc, VALUE *argv, VALUE self){
   rblapack_sva = rblapack_sva_out__;
   sva = sva_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = n;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgtrfs.c b/ext/sgtrfs.c
index 1a6b6df..d73c9f2 100644
--- a/ext/sgtrfs.c
+++ b/ext/sgtrfs.c
@@ -167,19 +167,19 @@ rblapack_sgtrfs(int argc, VALUE *argv, VALUE self){
     rblapack_duf = na_change_type(rblapack_duf, NA_SFLOAT);
   duf = NA_PTR_TYPE(rblapack_duf, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgtsv.c b/ext/sgtsv.c
index cae7077..733295a 100644
--- a/ext/sgtsv.c
+++ b/ext/sgtsv.c
@@ -89,7 +89,7 @@ rblapack_sgtsv(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_SFLOAT);
   du = NA_PTR_TYPE(rblapack_du, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_sgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_sgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_sgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_du = rblapack_du_out__;
   du = du_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgtsvx.c b/ext/sgtsvx.c
index a78f4ec..af767c4 100644
--- a/ext/sgtsvx.c
+++ b/ext/sgtsvx.c
@@ -171,26 +171,26 @@ rblapack_sgtsvx(int argc, VALUE *argv, VALUE self){
     rblapack_dlf = na_change_type(rblapack_dlf, NA_SFLOAT);
   dlf = NA_PTR_TYPE(rblapack_dlf, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dlf_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -199,7 +199,7 @@ rblapack_sgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_dlf = rblapack_dlf_out__;
   dlf = dlf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -208,7 +208,7 @@ rblapack_sgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_duf_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -217,7 +217,7 @@ rblapack_sgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_duf = rblapack_duf_out__;
   duf = duf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_sgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_du2 = rblapack_du2_out__;
   du2 = du2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sgttrf.c b/ext/sgttrf.c
index bf8a6e5..484018a 100644
--- a/ext/sgttrf.c
+++ b/ext/sgttrf.c
@@ -77,19 +77,19 @@ rblapack_sgttrf(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_SFLOAT);
   du = NA_PTR_TYPE(rblapack_du, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   du2 = NA_PTR_TYPE(rblapack_du2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_sgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_sgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sgttrs.c b/ext/sgttrs.c
index 8509dc3..0e135fe 100644
--- a/ext/sgttrs.c
+++ b/ext/sgttrs.c
@@ -111,7 +111,7 @@ rblapack_sgttrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sgtts2.c b/ext/sgtts2.c
index b22befd..a1ef565 100644
--- a/ext/sgtts2.c
+++ b/ext/sgtts2.c
@@ -109,7 +109,7 @@ rblapack_sgtts2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/shgeqz.c b/ext/shgeqz.c
index c080d02..fe2a1cb 100644
--- a/ext/shgeqz.c
+++ b/ext/shgeqz.c
@@ -133,31 +133,31 @@ rblapack_shgeqz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -167,7 +167,7 @@ rblapack_shgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -177,7 +177,7 @@ rblapack_shgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -187,7 +187,7 @@ rblapack_shgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/shsein.c b/ext/shsein.c
index 4a163a7..d198ad9 100644
--- a/ext/shsein.c
+++ b/ext/shsein.c
@@ -136,19 +136,19 @@ rblapack_shsein(int argc, VALUE *argv, VALUE self){
     rblapack_vl = na_change_type(rblapack_vl, NA_SFLOAT);
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifaill = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifaill = NA_PTR_TYPE(rblapack_ifaill, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifailr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifailr = NA_PTR_TYPE(rblapack_ifailr, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_select_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -157,7 +157,7 @@ rblapack_shsein(int argc, VALUE *argv, VALUE self){
   rblapack_select = rblapack_select_out__;
   select = select_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_shsein(int argc, VALUE *argv, VALUE self){
   rblapack_wr = rblapack_wr_out__;
   wr = wr_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_shsein(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/shseqr.c b/ext/shseqr.c
index c5f8081..4797e32 100644
--- a/ext/shseqr.c
+++ b/ext/shseqr.c
@@ -99,25 +99,25 @@ rblapack_shseqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_shseqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compz,"N") ? 0 : ldz;
     shape[1] = lsame_(&compz,"N") ? 0 : n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sla_gbamv.c b/ext/sla_gbamv.c
index e472b26..33dc1cb 100644
--- a/ext/sla_gbamv.c
+++ b/ext/sla_gbamv.c
@@ -105,7 +105,7 @@ rblapack_sla_gbamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sla_gbrfsx_extended.c b/ext/sla_gbrfsx_extended.c
index 26fdccc..419736c 100644
--- a/ext/sla_gbrfsx_extended.c
+++ b/ext/sla_gbrfsx_extended.c
@@ -239,13 +239,13 @@ rblapack_sla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_dy = na_change_type(rblapack_dy, NA_SFLOAT);
   dy = NA_PTR_TYPE(rblapack_dy, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_sla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -265,7 +265,7 @@ rblapack_sla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sla_geamv.c b/ext/sla_geamv.c
index 73486f3..4ed50c9 100644
--- a/ext/sla_geamv.c
+++ b/ext/sla_geamv.c
@@ -95,7 +95,7 @@ rblapack_sla_geamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1+(m-1)*abs(incy) : 1+(n-1)*abs(incy);
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sla_gerfsx_extended.c b/ext/sla_gerfsx_extended.c
index 7d3bcdb..a02d5d9 100644
--- a/ext/sla_gerfsx_extended.c
+++ b/ext/sla_gerfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_sla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_SFLOAT);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_sla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_sla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sla_lin_berr.c b/ext/sla_lin_berr.c
index df8419c..8eec838 100644
--- a/ext/sla_lin_berr.c
+++ b/ext/sla_lin_berr.c
@@ -63,7 +63,7 @@ rblapack_sla_lin_berr(int argc, VALUE *argv, VALUE self){
     rblapack_res = na_change_type(rblapack_res, NA_SFLOAT);
   res = NA_PTR_TYPE(rblapack_res, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sla_porfsx_extended.c b/ext/sla_porfsx_extended.c
index 45278d7..4a686e5 100644
--- a/ext/sla_porfsx_extended.c
+++ b/ext/sla_porfsx_extended.c
@@ -219,13 +219,13 @@ rblapack_sla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   y = NA_PTR_TYPE(rblapack_y, real*);
   rcond = (real)NUM2DBL(rblapack_rcond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_sla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_sla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sla_syamv.c b/ext/sla_syamv.c
index efd7c21..ae594dc 100644
--- a/ext/sla_syamv.c
+++ b/ext/sla_syamv.c
@@ -92,7 +92,7 @@ rblapack_sla_syamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sla_syrfsx_extended.c b/ext/sla_syrfsx_extended.c
index 4cffe87..64374aa 100644
--- a/ext/sla_syrfsx_extended.c
+++ b/ext/sla_syrfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_sla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_SFLOAT);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_sla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_sla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sla_wwaddw.c b/ext/sla_wwaddw.c
index 33b52a6..8b5dc1a 100644
--- a/ext/sla_wwaddw.c
+++ b/ext/sla_wwaddw.c
@@ -69,7 +69,7 @@ rblapack_sla_wwaddw(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_sla_wwaddw(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slabrd.c b/ext/slabrd.c
index 7c81f68..751560f 100644
--- a/ext/slabrd.c
+++ b/ext/slabrd.c
@@ -69,45 +69,45 @@ rblapack_slabrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldx = m;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tauq = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_taup = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = MAX(1,nb);
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slacn2.c b/ext/slacn2.c
index b6904bd..a6b50c2 100644
--- a/ext/slacn2.c
+++ b/ext/slacn2.c
@@ -67,7 +67,7 @@ rblapack_slacn2(int argc, VALUE *argv, VALUE self){
     rblapack_isave = na_change_type(rblapack_isave, NA_LINT);
   isave = NA_PTR_TYPE(rblapack_isave, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -76,7 +76,7 @@ rblapack_slacn2(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3;
     rblapack_isave_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slacon.c b/ext/slacon.c
index 2e9b8fd..dc456e3 100644
--- a/ext/slacon.c
+++ b/ext/slacon.c
@@ -53,7 +53,7 @@ rblapack_slacon(int argc, VALUE *argv, VALUE self){
   kase = NUM2INT(rblapack_kase);
   est = (real)NUM2DBL(rblapack_est);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slacpy.c b/ext/slacpy.c
index 6ff8dd5..021e570 100644
--- a/ext/slacpy.c
+++ b/ext/slacpy.c
@@ -55,7 +55,7 @@ rblapack_slacpy(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaebz.c b/ext/slaebz.c
index b825a3f..dbd1241 100644
--- a/ext/slaebz.c
+++ b/ext/slaebz.c
@@ -159,7 +159,7 @@ rblapack_slaebz(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = (ijob==1||ijob==2) ? 0 : ijob==3 ? minp : 0;
     rblapack_nval_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -168,7 +168,7 @@ rblapack_slaebz(int argc, VALUE *argv, VALUE self){
   rblapack_nval = rblapack_nval_out__;
   nval = nval_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = mmax;
     shape[1] = 2;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_slaebz(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ijob==1 ? 0 : (ijob==2||ijob==3) ? mmax : 0;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -187,7 +187,7 @@ rblapack_slaebz(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = mmax;
     shape[1] = 2;
     rblapack_nab_out__ = na_make_object(NA_LINT, 2, shape, cNArray);
diff --git a/ext/slaed0.c b/ext/slaed0.c
index 63cc1ca..f43b191 100644
--- a/ext/slaed0.c
+++ b/ext/slaed0.c
@@ -86,7 +86,7 @@ rblapack_slaed0(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -95,7 +95,7 @@ rblapack_slaed0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaed1.c b/ext/slaed1.c
index 4afec91..8276c1a 100644
--- a/ext/slaed1.c
+++ b/ext/slaed1.c
@@ -85,7 +85,7 @@ rblapack_slaed1(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, real*);
   rho = (real)NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -94,7 +94,7 @@ rblapack_slaed1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -104,7 +104,7 @@ rblapack_slaed1(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slaed2.c b/ext/slaed2.c
index 6a81e7c..7ac4a0e 100644
--- a/ext/slaed2.c
+++ b/ext/slaed2.c
@@ -109,37 +109,37 @@ rblapack_slaed2(int argc, VALUE *argv, VALUE self){
     rblapack_indxq = na_change_type(rblapack_indxq, NA_LINT);
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n1,2)+pow(n-n1,2);
     rblapack_q2 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxc = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxc = NA_PTR_TYPE(rblapack_indxc, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_coltyp = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   coltyp = NA_PTR_TYPE(rblapack_coltyp, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -148,7 +148,7 @@ rblapack_slaed2(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -158,7 +158,7 @@ rblapack_slaed2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slaed3.c b/ext/slaed3.c
index 1840a0e..010bfe3 100644
--- a/ext/slaed3.c
+++ b/ext/slaed3.c
@@ -112,20 +112,20 @@ rblapack_slaed3(int argc, VALUE *argv, VALUE self){
   q2 = NA_PTR_TYPE(rblapack_q2, real*);
   ldq = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_dlamda_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_slaed3(int argc, VALUE *argv, VALUE self){
   rblapack_dlamda = rblapack_dlamda_out__;
   dlamda = dlamda_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_w_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaed4.c b/ext/slaed4.c
index b9d5de8..a5c8ba9 100644
--- a/ext/slaed4.c
+++ b/ext/slaed4.c
@@ -67,7 +67,7 @@ rblapack_slaed4(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, real*);
   rho = (real)NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_delta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaed5.c b/ext/slaed5.c
index 1ef5f2a..d1f5eeb 100644
--- a/ext/slaed5.c
+++ b/ext/slaed5.c
@@ -65,7 +65,7 @@ rblapack_slaed5(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, real*);
   rho = (real)NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_delta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaed7.c b/ext/slaed7.c
index d6105fa..af6410f 100644
--- a/ext/slaed7.c
+++ b/ext/slaed7.c
@@ -185,13 +185,13 @@ rblapack_slaed7(int argc, VALUE *argv, VALUE self){
     rblapack_perm = na_change_type(rblapack_perm, NA_LINT);
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_slaed7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_slaed7(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n,2)+1;
     rblapack_qstore_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -219,7 +219,7 @@ rblapack_slaed7(int argc, VALUE *argv, VALUE self){
   rblapack_qstore = rblapack_qstore_out__;
   qstore = qstore_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n+2;
     rblapack_qptr_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slaed8.c b/ext/slaed8.c
index e443602..14ce33d 100644
--- a/ext/slaed8.c
+++ b/ext/slaed8.c
@@ -125,46 +125,46 @@ rblapack_slaed8(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, real*);
   cutpnt = NUM2INT(rblapack_cutpnt);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq==0 ? 0 : ldq2;
     shape[1] = icompq==0 ? 0 : n;
     rblapack_q2 = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givnum = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_slaed8(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq==0 ? 0 : ldq;
     shape[1] = icompq==0 ? 0 : n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaed9.c b/ext/slaed9.c
index 249afdb..ff3c5bf 100644
--- a/ext/slaed9.c
+++ b/ext/slaed9.c
@@ -80,13 +80,13 @@ rblapack_slaed9(int argc, VALUE *argv, VALUE self){
   rho = (real)NUM2DBL(rblapack_rho);
   lds = MAX( 1, k );
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lds;
     shape[1] = k;
     rblapack_s = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaeda.c b/ext/slaeda.c
index 147863f..d8c81ce 100644
--- a/ext/slaeda.c
+++ b/ext/slaeda.c
@@ -136,7 +136,7 @@ rblapack_slaeda(int argc, VALUE *argv, VALUE self){
     rblapack_givcol = na_change_type(rblapack_givcol, NA_LINT);
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaein.c b/ext/slaein.c
index 148df51..4d09cbb 100644
--- a/ext/slaein.c
+++ b/ext/slaein.c
@@ -105,7 +105,7 @@ rblapack_slaein(int argc, VALUE *argv, VALUE self){
   ldb = n+1;
   eps3 = (real)NUM2DBL(rblapack_eps3);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -114,7 +114,7 @@ rblapack_slaein(int argc, VALUE *argv, VALUE self){
   rblapack_vr = rblapack_vr_out__;
   vr = vr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vi_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaexc.c b/ext/slaexc.c
index 7981365..1bebd79 100644
--- a/ext/slaexc.c
+++ b/ext/slaexc.c
@@ -80,7 +80,7 @@ rblapack_slaexc(int argc, VALUE *argv, VALUE self){
   n2 = NUM2INT(rblapack_n2);
   j1 = NUM2INT(rblapack_j1);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -90,7 +90,7 @@ rblapack_slaexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slag2d.c b/ext/slag2d.c
index 40103b8..b28a901 100644
--- a/ext/slag2d.c
+++ b/ext/slag2d.c
@@ -53,7 +53,7 @@ rblapack_slag2d(int argc, VALUE *argv, VALUE self){
     rblapack_sa = na_change_type(rblapack_sa, NA_SFLOAT);
   sa = NA_PTR_TYPE(rblapack_sa, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/slagtf.c b/ext/slagtf.c
index 10ada87..051f5d1 100644
--- a/ext/slagtf.c
+++ b/ext/slagtf.c
@@ -85,19 +85,19 @@ rblapack_slagtf(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_in = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   in = NA_PTR_TYPE(rblapack_in, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_slagtf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -115,7 +115,7 @@ rblapack_slagtf(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slagtm.c b/ext/slagtm.c
index 64924e4..ba8f9a3 100644
--- a/ext/slagtm.c
+++ b/ext/slagtm.c
@@ -107,7 +107,7 @@ rblapack_slagtm(int argc, VALUE *argv, VALUE self){
   dl = NA_PTR_TYPE(rblapack_dl, real*);
   beta = (real)NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slagts.c b/ext/slagts.c
index 16c1df6..e487034 100644
--- a/ext/slagts.c
+++ b/ext/slagts.c
@@ -113,7 +113,7 @@ rblapack_slagts(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slagv2.c b/ext/slagv2.c
index a868f71..0a652df 100644
--- a/ext/slagv2.c
+++ b/ext/slagv2.c
@@ -75,25 +75,25 @@ rblapack_slagv2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = 2;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_slagv2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = 2;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slahqr.c b/ext/slahqr.c
index 81a249b..16a9ab7 100644
--- a/ext/slahqr.c
+++ b/ext/slahqr.c
@@ -95,19 +95,19 @@ rblapack_slahqr(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SFLOAT);
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -117,7 +117,7 @@ rblapack_slahqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? n : 0;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slahr2.c b/ext/slahr2.c
index f27d271..ab69986 100644
--- a/ext/slahr2.c
+++ b/ext/slahr2.c
@@ -67,27 +67,27 @@ rblapack_slahr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slahrd.c b/ext/slahrd.c
index 0c9871a..5dcd2a2 100644
--- a/ext/slahrd.c
+++ b/ext/slahrd.c
@@ -69,27 +69,27 @@ rblapack_slahrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaln2.c b/ext/slaln2.c
index 4d635b4..41787e3 100644
--- a/ext/slaln2.c
+++ b/ext/slaln2.c
@@ -95,7 +95,7 @@ rblapack_slaln2(int argc, VALUE *argv, VALUE self){
   ldx = na;
   wr = (real)NUM2DBL(rblapack_wr);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nw;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slals0.c b/ext/slals0.c
index 8cd8479..b202bf9 100644
--- a/ext/slals0.c
+++ b/ext/slals0.c
@@ -171,7 +171,7 @@ rblapack_slals0(int argc, VALUE *argv, VALUE self){
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   ldbx = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slalsa.c b/ext/slalsa.c
index 71503ef..a392288 100644
--- a/ext/slalsa.c
+++ b/ext/slalsa.c
@@ -233,14 +233,14 @@ rblapack_slalsa(int argc, VALUE *argv, VALUE self){
     rblapack_givnum = na_change_type(rblapack_givnum, NA_SFLOAT);
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbx;
     shape[1] = nrhs;
     rblapack_bx = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   bx = NA_PTR_TYPE(rblapack_bx, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slalsd.c b/ext/slalsd.c
index 16ff1ff..a7594a9 100644
--- a/ext/slalsd.c
+++ b/ext/slalsd.c
@@ -93,7 +93,7 @@ rblapack_slalsd(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   nlvl = MAX(0, (int)(1.0/log(2.0)*log((double)n/(smlsiz+1))) + 1);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_slalsd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -111,7 +111,7 @@ rblapack_slalsd(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slamrg.c b/ext/slamrg.c
index ec64618..742f244 100644
--- a/ext/slamrg.c
+++ b/ext/slamrg.c
@@ -59,7 +59,7 @@ rblapack_slamrg(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n1+n2;
     rblapack_index = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slapll.c b/ext/slapll.c
index 7e3a03b..2c2c327 100644
--- a/ext/slapll.c
+++ b/ext/slapll.c
@@ -71,7 +71,7 @@ rblapack_slapll(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -80,7 +80,7 @@ rblapack_slapll(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slapmr.c b/ext/slapmr.c
index d9873bf..7ec4048 100644
--- a/ext/slapmr.c
+++ b/ext/slapmr.c
@@ -63,7 +63,7 @@ rblapack_slapmr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -73,7 +73,7 @@ rblapack_slapmr(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slapmt.c b/ext/slapmt.c
index 57f1b11..897ee76 100644
--- a/ext/slapmt.c
+++ b/ext/slapmt.c
@@ -67,7 +67,7 @@ rblapack_slapmt(int argc, VALUE *argv, VALUE self){
     rblapack_k = na_change_type(rblapack_k, NA_LINT);
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_slapmt(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slaqgb.c b/ext/slaqgb.c
index 2f73267..168fd5a 100644
--- a/ext/slaqgb.c
+++ b/ext/slaqgb.c
@@ -91,7 +91,7 @@ rblapack_slaqgb(int argc, VALUE *argv, VALUE self){
   r = NA_PTR_TYPE(rblapack_r, real*);
   amax = (real)NUM2DBL(rblapack_amax);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqge.c b/ext/slaqge.c
index 52547c1..08642b7 100644
--- a/ext/slaqge.c
+++ b/ext/slaqge.c
@@ -83,7 +83,7 @@ rblapack_slaqge(int argc, VALUE *argv, VALUE self){
   amax = (real)NUM2DBL(rblapack_amax);
   rowcnd = (real)NUM2DBL(rblapack_rowcnd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqp2.c b/ext/slaqp2.c
index 6d643bb..0553d01 100644
--- a/ext/slaqp2.c
+++ b/ext/slaqp2.c
@@ -98,13 +98,13 @@ rblapack_slaqp2(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -114,7 +114,7 @@ rblapack_slaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -123,7 +123,7 @@ rblapack_slaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -132,7 +132,7 @@ rblapack_slaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaqps.c b/ext/slaqps.c
index 2f14ba9..381aab2 100644
--- a/ext/slaqps.c
+++ b/ext/slaqps.c
@@ -130,13 +130,13 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   f = NA_PTR_TYPE(rblapack_f, real*);
   kb = nb;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = kb;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -155,7 +155,7 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -164,7 +164,7 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn2 = rblapack_vn2_out__;
   vn2 = vn2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nb;
     rblapack_auxv_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -182,7 +182,7 @@ rblapack_slaqps(int argc, VALUE *argv, VALUE self){
   rblapack_auxv = rblapack_auxv_out__;
   auxv = auxv_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = nb;
     rblapack_f_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqr0.c b/ext/slaqr0.c
index 4f3df2f..40747c8 100644
--- a/ext/slaqr0.c
+++ b/ext/slaqr0.c
@@ -99,25 +99,25 @@ rblapack_slaqr0(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_slaqr0(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqr1.c b/ext/slaqr1.c
index bc59a4a..1b35bdd 100644
--- a/ext/slaqr1.c
+++ b/ext/slaqr1.c
@@ -61,7 +61,7 @@ rblapack_slaqr1(int argc, VALUE *argv, VALUE self){
   sr1 = (real)NUM2DBL(rblapack_sr1);
   sr2 = (real)NUM2DBL(rblapack_sr2);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaqr2.c b/ext/slaqr2.c
index fa4439c..dfa99b8 100644
--- a/ext/slaqr2.c
+++ b/ext/slaqr2.c
@@ -125,19 +125,19 @@ rblapack_slaqr2(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   sr = NA_PTR_TYPE(rblapack_sr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_si = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   si = NA_PTR_TYPE(rblapack_si, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_slaqr2(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqr3.c b/ext/slaqr3.c
index bfcc217..e37a5dd 100644
--- a/ext/slaqr3.c
+++ b/ext/slaqr3.c
@@ -125,19 +125,19 @@ rblapack_slaqr3(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   sr = NA_PTR_TYPE(rblapack_sr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_si = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   si = NA_PTR_TYPE(rblapack_si, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_slaqr3(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqr4.c b/ext/slaqr4.c
index 176a8dc..11adac5 100644
--- a/ext/slaqr4.c
+++ b/ext/slaqr4.c
@@ -99,25 +99,25 @@ rblapack_slaqr4(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ihi;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_slaqr4(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqr5.c b/ext/slaqr5.c
index 460cf16..5c61a6a 100644
--- a/ext/slaqr5.c
+++ b/ext/slaqr5.c
@@ -139,7 +139,7 @@ rblapack_slaqr5(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SFLOAT);
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_sr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -148,7 +148,7 @@ rblapack_slaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_sr = rblapack_sr_out__;
   sr = sr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_si_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -157,7 +157,7 @@ rblapack_slaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_si = rblapack_si_out__;
   si = si_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -167,7 +167,7 @@ rblapack_slaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? ihiz : 0;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqsb.c b/ext/slaqsb.c
index 265fa6c..e1cc694 100644
--- a/ext/slaqsb.c
+++ b/ext/slaqsb.c
@@ -75,7 +75,7 @@ rblapack_slaqsb(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqsp.c b/ext/slaqsp.c
index 0367366..f396a70 100644
--- a/ext/slaqsp.c
+++ b/ext/slaqsp.c
@@ -69,7 +69,7 @@ rblapack_slaqsp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaqsy.c b/ext/slaqsy.c
index 1beb571..5a59f7d 100644
--- a/ext/slaqsy.c
+++ b/ext/slaqsy.c
@@ -71,7 +71,7 @@ rblapack_slaqsy(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   scond = (real)NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slaqtr.c b/ext/slaqtr.c
index 56238c0..56e09d4 100644
--- a/ext/slaqtr.c
+++ b/ext/slaqtr.c
@@ -86,7 +86,7 @@ rblapack_slaqtr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slar1v.c b/ext/slar1v.c
index a74c83a..7051298 100644
--- a/ext/slar1v.c
+++ b/ext/slar1v.c
@@ -134,13 +134,13 @@ rblapack_slar1v(int argc, VALUE *argv, VALUE self){
     rblapack_lld = na_change_type(rblapack_lld, NA_SFLOAT);
   lld = NA_PTR_TYPE(rblapack_lld, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slar2v.c b/ext/slar2v.c
index 6bdf3e8..d8bde1c 100644
--- a/ext/slar2v.c
+++ b/ext/slar2v.c
@@ -107,7 +107,7 @@ rblapack_slar2v(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_slar2v(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_slar2v(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarf.c b/ext/slarf.c
index 47a7410..530ee36 100644
--- a/ext/slarf.c
+++ b/ext/slarf.c
@@ -74,7 +74,7 @@ rblapack_slarf(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SFLOAT);
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slarfb.c b/ext/slarfb.c
index 1e89128..e5ab50b 100644
--- a/ext/slarfb.c
+++ b/ext/slarfb.c
@@ -96,7 +96,7 @@ rblapack_slarfb(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, real*);
   ldwork = MAX(1,n) ? side = 'l' : MAX(1,m) ? side = 'r' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slarfg.c b/ext/slarfg.c
index 11bf64a..c8da1f6 100644
--- a/ext/slarfg.c
+++ b/ext/slarfg.c
@@ -57,7 +57,7 @@ rblapack_slarfg(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarfgp.c b/ext/slarfgp.c
index 379eafa..cb2c65d 100644
--- a/ext/slarfgp.c
+++ b/ext/slarfgp.c
@@ -57,7 +57,7 @@ rblapack_slarfgp(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarft.c b/ext/slarft.c
index 1f77438..41848e2 100644
--- a/ext/slarft.c
+++ b/ext/slarft.c
@@ -73,14 +73,14 @@ rblapack_slarft(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SFLOAT);
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slarfx.c b/ext/slarfx.c
index ba16e2e..d72adfb 100644
--- a/ext/slarfx.c
+++ b/ext/slarfx.c
@@ -66,7 +66,7 @@ rblapack_slarfx(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slargv.c b/ext/slargv.c
index f7a431a..576a8ef 100644
--- a/ext/slargv.c
+++ b/ext/slargv.c
@@ -75,13 +75,13 @@ rblapack_slargv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_SFLOAT);
   y = NA_PTR_TYPE(rblapack_y, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incc;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -90,7 +90,7 @@ rblapack_slargv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarnv.c b/ext/slarnv.c
index 4041e14..3ab7e6e 100644
--- a/ext/slarnv.c
+++ b/ext/slarnv.c
@@ -53,13 +53,13 @@ rblapack_slarnv(int argc, VALUE *argv, VALUE self){
     rblapack_iseed = na_change_type(rblapack_iseed, NA_LINT);
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slarra.c b/ext/slarra.c
index 87dedb6..505dd10 100644
--- a/ext/slarra.c
+++ b/ext/slarra.c
@@ -83,13 +83,13 @@ rblapack_slarra(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   spltol = (real)NUM2DBL(rblapack_spltol);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isplit = NA_PTR_TYPE(rblapack_isplit, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_slarra(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrb.c b/ext/slarrb.c
index 5cf8638..e0b68df 100644
--- a/ext/slarrb.c
+++ b/ext/slarrb.c
@@ -131,7 +131,7 @@ rblapack_slarrb(int argc, VALUE *argv, VALUE self){
   rtol2 = (real)NUM2DBL(rblapack_rtol2);
   twist = NUM2INT(rblapack_twist);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -140,7 +140,7 @@ rblapack_slarrb(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_wgap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -149,7 +149,7 @@ rblapack_slarrb(int argc, VALUE *argv, VALUE self){
   rblapack_wgap = rblapack_wgap_out__;
   wgap = wgap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrd.c b/ext/slarrd.c
index cc74299..73300af 100644
--- a/ext/slarrd.c
+++ b/ext/slarrd.c
@@ -143,25 +143,25 @@ rblapack_slarrd(int argc, VALUE *argv, VALUE self){
   gers = NA_PTR_TYPE(rblapack_gers, real*);
   nsplit = NUM2INT(rblapack_nsplit);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   werr = NA_PTR_TYPE(rblapack_werr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indexw = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slarre.c b/ext/slarre.c
index 25e2538..bbe456a 100644
--- a/ext/slarre.c
+++ b/ext/slarre.c
@@ -127,49 +127,49 @@ rblapack_slarre(int argc, VALUE *argv, VALUE self){
     rblapack_e2 = na_change_type(rblapack_e2, NA_SFLOAT);
   e2 = NA_PTR_TYPE(rblapack_e2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isplit = NA_PTR_TYPE(rblapack_isplit, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   werr = NA_PTR_TYPE(rblapack_werr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wgap = NA_PTR_TYPE(rblapack_wgap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indexw = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indexw = NA_PTR_TYPE(rblapack_indexw, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_gers = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   gers = NA_PTR_TYPE(rblapack_gers, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_slarre(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -187,7 +187,7 @@ rblapack_slarre(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrf.c b/ext/slarrf.c
index 4b7f3e9..4948531 100644
--- a/ext/slarrf.c
+++ b/ext/slarrf.c
@@ -136,19 +136,19 @@ rblapack_slarrf(int argc, VALUE *argv, VALUE self){
     rblapack_werr = na_change_type(rblapack_werr, NA_SFLOAT);
   werr = NA_PTR_TYPE(rblapack_werr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dplus = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dplus = NA_PTR_TYPE(rblapack_dplus, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_lplus = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   lplus = NA_PTR_TYPE(rblapack_lplus, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = clend-clstrt+1;
     rblapack_wgap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrj.c b/ext/slarrj.c
index d67e4cc..3e21a31 100644
--- a/ext/slarrj.c
+++ b/ext/slarrj.c
@@ -109,7 +109,7 @@ rblapack_slarrj(int argc, VALUE *argv, VALUE self){
   spdiam = (real)NUM2DBL(rblapack_spdiam);
   offset = NUM2INT(rblapack_offset);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -118,7 +118,7 @@ rblapack_slarrj(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrr.c b/ext/slarrr.c
index 474b3ae..62dadeb 100644
--- a/ext/slarrr.c
+++ b/ext/slarrr.c
@@ -57,7 +57,7 @@ rblapack_slarrr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarrv.c b/ext/slarrv.c
index cf1e9d3..cf15390 100644
--- a/ext/slarrv.c
+++ b/ext/slarrv.c
@@ -193,20 +193,20 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
     rblapack_gers = na_change_type(rblapack_gers, NA_SFLOAT);
   gers = NA_PTR_TYPE(rblapack_gers, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -215,7 +215,7 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_l_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -224,7 +224,7 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
   rblapack_l = rblapack_l_out__;
   l = l_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -233,7 +233,7 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -242,7 +242,7 @@ rblapack_slarrv(int argc, VALUE *argv, VALUE self){
   rblapack_werr = rblapack_werr_out__;
   werr = werr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slarscl2.c b/ext/slarscl2.c
index 7210533..4770ef2 100644
--- a/ext/slarscl2.c
+++ b/ext/slarscl2.c
@@ -57,7 +57,7 @@ rblapack_slarscl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slartv.c b/ext/slartv.c
index b74f8d8..9882a94 100644
--- a/ext/slartv.c
+++ b/ext/slartv.c
@@ -97,7 +97,7 @@ rblapack_slartv(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_slartv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaruv.c b/ext/slaruv.c
index f137091..70090dd 100644
--- a/ext/slaruv.c
+++ b/ext/slaruv.c
@@ -49,13 +49,13 @@ rblapack_slaruv(int argc, VALUE *argv, VALUE self){
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   n = NUM2INT(rblapack_n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slarz.c b/ext/slarz.c
index 337e982..278a2cf 100644
--- a/ext/slarz.c
+++ b/ext/slarz.c
@@ -78,7 +78,7 @@ rblapack_slarz(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SFLOAT);
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slarzb.c b/ext/slarzb.c
index 9574d58..259ec4d 100644
--- a/ext/slarzb.c
+++ b/ext/slarzb.c
@@ -100,7 +100,7 @@ rblapack_slarzb(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_SFLOAT);
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slarzt.c b/ext/slarzt.c
index 36d480e..e9fa58d 100644
--- a/ext/slarzt.c
+++ b/ext/slarzt.c
@@ -73,14 +73,14 @@ rblapack_slarzt(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_SFLOAT);
   v = NA_PTR_TYPE(rblapack_v, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slascl.c b/ext/slascl.c
index b04826e..ae88bc8 100644
--- a/ext/slascl.c
+++ b/ext/slascl.c
@@ -71,7 +71,7 @@ rblapack_slascl(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   cfrom = (real)NUM2DBL(rblapack_cfrom);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slascl2.c b/ext/slascl2.c
index 7dd7497..fde3878 100644
--- a/ext/slascl2.c
+++ b/ext/slascl2.c
@@ -57,7 +57,7 @@ rblapack_slascl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasd0.c b/ext/slasd0.c
index d00a8af..55412ce 100644
--- a/ext/slasd0.c
+++ b/ext/slasd0.c
@@ -77,21 +77,21 @@ rblapack_slasd0(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   ldvt = m;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd1.c b/ext/slasd1.c
index 28da4a7..50b4549 100644
--- a/ext/slasd1.c
+++ b/ext/slasd1.c
@@ -103,13 +103,13 @@ rblapack_slasd1(int argc, VALUE *argv, VALUE self){
     rblapack_vt = na_change_type(rblapack_vt, NA_SFLOAT);
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxq = NA_PTR_TYPE(rblapack_idxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nl+nr+1;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -118,7 +118,7 @@ rblapack_slasd1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -128,7 +128,7 @@ rblapack_slasd1(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasd2.c b/ext/slasd2.c
index cbd0855..a608467 100644
--- a/ext/slasd2.c
+++ b/ext/slasd2.c
@@ -131,45 +131,45 @@ rblapack_slasd2(int argc, VALUE *argv, VALUE self){
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   ldvt2 = m;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dsigma = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dsigma = NA_PTR_TYPE(rblapack_dsigma, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = n;
     rblapack_u2 = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt2;
     shape[1] = n;
     rblapack_vt2 = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt2 = NA_PTR_TYPE(rblapack_vt2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxc = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxc = NA_PTR_TYPE(rblapack_idxc, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_coltyp = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   coltyp = NA_PTR_TYPE(rblapack_coltyp, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_slasd2(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_slasd2(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_slasd2(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slasd3.c b/ext/slasd3.c
index 55e047f..d8f6022 100644
--- a/ext/slasd3.c
+++ b/ext/slasd3.c
@@ -146,27 +146,27 @@ rblapack_slasd3(int argc, VALUE *argv, VALUE self){
   u2 = NA_PTR_TYPE(rblapack_u2, real*);
   m = n+sqre;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = m;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_dsigma_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -175,7 +175,7 @@ rblapack_slasd3(int argc, VALUE *argv, VALUE self){
   rblapack_dsigma = rblapack_dsigma_out__;
   dsigma = dsigma_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt2;
     shape[1] = n;
     rblapack_vt2_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -185,7 +185,7 @@ rblapack_slasd3(int argc, VALUE *argv, VALUE self){
   rblapack_vt2 = rblapack_vt2_out__;
   vt2 = vt2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd4.c b/ext/slasd4.c
index 7f55a4e..f35c3a2 100644
--- a/ext/slasd4.c
+++ b/ext/slasd4.c
@@ -68,7 +68,7 @@ rblapack_slasd4(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, real*);
   rho = (real)NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_delta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd5.c b/ext/slasd5.c
index 0a62d11..f8e1e98 100644
--- a/ext/slasd5.c
+++ b/ext/slasd5.c
@@ -66,7 +66,7 @@ rblapack_slasd5(int argc, VALUE *argv, VALUE self){
   d = NA_PTR_TYPE(rblapack_d, real*);
   rho = (real)NUM2DBL(rblapack_rho);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_delta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd6.c b/ext/slasd6.c
index 187fac8..26c712f 100644
--- a/ext/slasd6.c
+++ b/ext/slasd6.c
@@ -131,59 +131,59 @@ rblapack_slasd6(int argc, VALUE *argv, VALUE self){
     rblapack_vl = na_change_type(rblapack_vl, NA_SFLOAT);
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_idxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   idxq = NA_PTR_TYPE(rblapack_idxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_givnum = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_poles = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   poles = NA_PTR_TYPE(rblapack_poles, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_difl = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldgnum : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? 2 : 0;
     rblapack_difr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_z = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nl+nr+1;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -192,7 +192,7 @@ rblapack_slasd6(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vf_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -201,7 +201,7 @@ rblapack_slasd6(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd7.c b/ext/slasd7.c
index b7b22bf..22c8caf 100644
--- a/ext/slasd7.c
+++ b/ext/slasd7.c
@@ -136,39 +136,39 @@ rblapack_slasd7(int argc, VALUE *argv, VALUE self){
   ldgnum = n;
   alpha = (real)NUM2DBL(rblapack_alpha);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_z = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dsigma = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dsigma = NA_PTR_TYPE(rblapack_dsigma, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgnum;
     shape[1] = 2;
     rblapack_givnum = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -177,7 +177,7 @@ rblapack_slasd7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vf_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -186,7 +186,7 @@ rblapack_slasd7(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasd8.c b/ext/slasd8.c
index bee7e16..05456fe 100644
--- a/ext/slasd8.c
+++ b/ext/slasd8.c
@@ -100,26 +100,26 @@ rblapack_slasd8(int argc, VALUE *argv, VALUE self){
   vl = NA_PTR_TYPE(rblapack_vl, real*);
   lddifr = k;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_difl = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? lddifr : icompq == 0 ? k : 0;
     shape[1] = icompq == 1 ? 2 : 0;
     rblapack_difr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -128,7 +128,7 @@ rblapack_slasd8(int argc, VALUE *argv, VALUE self){
   rblapack_z = rblapack_z_out__;
   z = z_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_vf_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -137,7 +137,7 @@ rblapack_slasd8(int argc, VALUE *argv, VALUE self){
   rblapack_vf = rblapack_vf_out__;
   vf = vf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_slasd8(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = k;
     rblapack_dsigma_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasda.c b/ext/slasda.c
index 5879b1e..0114d36 100644
--- a/ext/slasda.c
+++ b/ext/slasda.c
@@ -105,94 +105,94 @@ rblapack_slasda(int argc, VALUE *argv, VALUE self){
   ldgcol = n;
   ldu = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = MAX(1,smlsiz);
     rblapack_u = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = smlsiz+1;
     rblapack_vt = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq == 1 ? n : icompq == 0 ? 1 : 0;
     rblapack_k = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = nlvl;
     rblapack_difl = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   difl = NA_PTR_TYPE(rblapack_difl, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldu : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? 2 * nlvl : 0;
     rblapack_difr = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   difr = NA_PTR_TYPE(rblapack_difr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = icompq == 1 ? ldu : icompq == 0 ? n : 0;
     shape[1] = icompq == 1 ? nlvl : 0;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = 2 * nlvl;
     rblapack_poles = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   poles = NA_PTR_TYPE(rblapack_poles, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_givptr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   givptr = NA_PTR_TYPE(rblapack_givptr, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = 2 * nlvl;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldgcol;
     shape[1] = nlvl;
     rblapack_perm = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = 2 * nlvl;
     rblapack_givnum = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq == 1 ? n : icompq == 0 ? 1 : 0;
     rblapack_c = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = icompq==1 ? n : icompq==0 ? 1 : 0;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasdq.c b/ext/slasdq.c
index 3623d08..7945740 100644
--- a/ext/slasdq.c
+++ b/ext/slasdq.c
@@ -120,7 +120,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -129,7 +129,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = sqre==0 ? n-1 : sqre==1 ? n : 0;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -148,7 +148,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -158,7 +158,7 @@ rblapack_slasdq(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasdt.c b/ext/slasdt.c
index 03a0f38..fde4950 100644
--- a/ext/slasdt.c
+++ b/ext/slasdt.c
@@ -47,19 +47,19 @@ rblapack_slasdt(int argc, VALUE *argv, VALUE self){
   n = NUM2INT(rblapack_n);
   msub = NUM2INT(rblapack_msub);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_inode = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   inode = NA_PTR_TYPE(rblapack_inode, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_ndiml = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ndiml = NA_PTR_TYPE(rblapack_ndiml, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_ndimr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/slaset.c b/ext/slaset.c
index cd1816d..1ef56e9 100644
--- a/ext/slaset.c
+++ b/ext/slaset.c
@@ -61,7 +61,7 @@ rblapack_slaset(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   beta = (real)NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasq1.c b/ext/slasq1.c
index 0ceb3ae..09893c8 100644
--- a/ext/slasq1.c
+++ b/ext/slasq1.c
@@ -60,7 +60,7 @@ rblapack_slasq1(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -69,7 +69,7 @@ rblapack_slasq1(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasq2.c b/ext/slasq2.c
index 605e9a8..d87329e 100644
--- a/ext/slasq2.c
+++ b/ext/slasq2.c
@@ -49,7 +49,7 @@ rblapack_slasq2(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_SFLOAT);
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4*n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slasr.c b/ext/slasr.c
index f1bcdaf..783d420 100644
--- a/ext/slasr.c
+++ b/ext/slasr.c
@@ -85,7 +85,7 @@ rblapack_slasr(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
   c = NA_PTR_TYPE(rblapack_c, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasrt.c b/ext/slasrt.c
index 7ab298e..a391720 100644
--- a/ext/slasrt.c
+++ b/ext/slasrt.c
@@ -49,7 +49,7 @@ rblapack_slasrt(int argc, VALUE *argv, VALUE self){
     rblapack_d = na_change_type(rblapack_d, NA_SFLOAT);
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slaswp.c b/ext/slaswp.c
index b680536..3fd122c 100644
--- a/ext/slaswp.c
+++ b/ext/slaswp.c
@@ -69,7 +69,7 @@ rblapack_slaswp(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasy2.c b/ext/slasy2.c
index f99be77..fc8a405 100644
--- a/ext/slasy2.c
+++ b/ext/slasy2.c
@@ -101,7 +101,7 @@ rblapack_slasy2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = 2;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slasyf.c b/ext/slasyf.c
index a9a62a7..32b5abf 100644
--- a/ext/slasyf.c
+++ b/ext/slasyf.c
@@ -62,13 +62,13 @@ rblapack_slasyf(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slatbs.c b/ext/slatbs.c
index fad254c..db8e860 100644
--- a/ext/slatbs.c
+++ b/ext/slatbs.c
@@ -95,7 +95,7 @@ rblapack_slatbs(int argc, VALUE *argv, VALUE self){
     rblapack_cnorm = na_change_type(rblapack_cnorm, NA_SFLOAT);
   cnorm = NA_PTR_TYPE(rblapack_cnorm, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -104,7 +104,7 @@ rblapack_slatbs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slatdf.c b/ext/slatdf.c
index cea67ee..bf5e87e 100644
--- a/ext/slatdf.c
+++ b/ext/slatdf.c
@@ -93,7 +93,7 @@ rblapack_slatdf(int argc, VALUE *argv, VALUE self){
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   rdsum = (real)NUM2DBL(rblapack_rdsum);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slatps.c b/ext/slatps.c
index d42f233..8d4e0d1 100644
--- a/ext/slatps.c
+++ b/ext/slatps.c
@@ -89,7 +89,7 @@ rblapack_slatps(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_slatps(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slatrd.c b/ext/slatrd.c
index 32c3b9f..d158e9a 100644
--- a/ext/slatrd.c
+++ b/ext/slatrd.c
@@ -61,26 +61,26 @@ rblapack_slatrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldw;
     shape[1] = MAX(n,nb);
     rblapack_w = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slatrs.c b/ext/slatrs.c
index aa7e379..4862722 100644
--- a/ext/slatrs.c
+++ b/ext/slatrs.c
@@ -91,7 +91,7 @@ rblapack_slatrs(int argc, VALUE *argv, VALUE self){
   x = NA_PTR_TYPE(rblapack_x, real*);
   normin = StringValueCStr(rblapack_normin)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -100,7 +100,7 @@ rblapack_slatrs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/slatrz.c b/ext/slatrz.c
index de83615..2b9c195 100644
--- a/ext/slatrz.c
+++ b/ext/slatrz.c
@@ -54,13 +54,13 @@ rblapack_slatrz(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slatzm.c b/ext/slatzm.c
index 0adcb46..3666aa6 100644
--- a/ext/slatzm.c
+++ b/ext/slatzm.c
@@ -94,7 +94,7 @@ rblapack_slatzm(int argc, VALUE *argv, VALUE self){
     rblapack_c1 = na_change_type(rblapack_c1, NA_SFLOAT);
   c1 = NA_PTR_TYPE(rblapack_c1, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0;
     rblapack_c1_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -104,7 +104,7 @@ rblapack_slatzm(int argc, VALUE *argv, VALUE self){
   rblapack_c1 = rblapack_c1_out__;
   c1 = c1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0;
     rblapack_c2_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slauu2.c b/ext/slauu2.c
index a6b06ad..2810746 100644
--- a/ext/slauu2.c
+++ b/ext/slauu2.c
@@ -51,7 +51,7 @@ rblapack_slauu2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/slauum.c b/ext/slauum.c
index 47683fc..20d40a6 100644
--- a/ext/slauum.c
+++ b/ext/slauum.c
@@ -51,7 +51,7 @@ rblapack_slauum(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sopgtr.c b/ext/sopgtr.c
index 5702253..12cbf23 100644
--- a/ext/sopgtr.c
+++ b/ext/sopgtr.c
@@ -66,7 +66,7 @@ rblapack_sopgtr(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   ldq = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sopmtr.c b/ext/sopmtr.c
index 4b6f9b0..28ad080 100644
--- a/ext/sopmtr.c
+++ b/ext/sopmtr.c
@@ -88,7 +88,7 @@ rblapack_sopmtr(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorbdb.c b/ext/sorbdb.c
index 80de755..04b3cee 100644
--- a/ext/sorbdb.c
+++ b/ext/sorbdb.c
@@ -138,43 +138,43 @@ rblapack_sorbdb(int argc, VALUE *argv, VALUE self){
     rblapack_x12 = na_change_type(rblapack_x12, NA_SFLOAT);
   x12 = NA_PTR_TYPE(rblapack_x12, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_phi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   phi = NA_PTR_TYPE(rblapack_phi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_taup1 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taup1 = NA_PTR_TYPE(rblapack_taup1, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_taup2 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   taup2 = NA_PTR_TYPE(rblapack_taup2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_tauq1 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tauq1 = NA_PTR_TYPE(rblapack_tauq1, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_tauq2 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tauq2 = NA_PTR_TYPE(rblapack_tauq2, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx11;
     shape[1] = q;
     rblapack_x11_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_sorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x11 = rblapack_x11_out__;
   x11 = x11_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx12;
     shape[1] = m-q;
     rblapack_x12_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -194,7 +194,7 @@ rblapack_sorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x12 = rblapack_x12_out__;
   x12 = x12_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx21;
     shape[1] = q;
     rblapack_x21_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -204,7 +204,7 @@ rblapack_sorbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x21 = rblapack_x21_out__;
   x21 = x21_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx22;
     shape[1] = m-q;
     rblapack_x22_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorcsd.c b/ext/sorcsd.c
index cabc8f1..1bff865 100644
--- a/ext/sorcsd.c
+++ b/ext/sorcsd.c
@@ -147,31 +147,31 @@ rblapack_sorcsd(int argc, VALUE *argv, VALUE self){
   x22 = NA_PTR_TYPE(rblapack_x22, real*);
   ldu2 = lsame_(&jobu2,"Y") ? MAX(1,m-p) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(MIN(MIN(p,m-p),q),m-q);
     rblapack_theta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_u1 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   u1 = NA_PTR_TYPE(rblapack_u1, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_u2 = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_v1t = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   v1t = NA_PTR_TYPE(rblapack_v1t, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_v2t = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sorg2l.c b/ext/sorg2l.c
index f249774..9e5ed59 100644
--- a/ext/sorg2l.c
+++ b/ext/sorg2l.c
@@ -64,7 +64,7 @@ rblapack_sorg2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorg2r.c b/ext/sorg2r.c
index 9bd5904..051bc4c 100644
--- a/ext/sorg2r.c
+++ b/ext/sorg2r.c
@@ -64,7 +64,7 @@ rblapack_sorg2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgbr.c b/ext/sorgbr.c
index 8fa4188..4bb03b2 100644
--- a/ext/sorgbr.c
+++ b/ext/sorgbr.c
@@ -83,13 +83,13 @@ rblapack_sorgbr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorghr.c b/ext/sorghr.c
index 740d730..c28b9eb 100644
--- a/ext/sorghr.c
+++ b/ext/sorghr.c
@@ -79,13 +79,13 @@ rblapack_sorghr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgl2.c b/ext/sorgl2.c
index 485291e..b4025a6 100644
--- a/ext/sorgl2.c
+++ b/ext/sorgl2.c
@@ -62,7 +62,7 @@ rblapack_sorgl2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorglq.c b/ext/sorglq.c
index a98ff60..553d093 100644
--- a/ext/sorglq.c
+++ b/ext/sorglq.c
@@ -75,13 +75,13 @@ rblapack_sorglq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgql.c b/ext/sorgql.c
index 460ada8..3055d9c 100644
--- a/ext/sorgql.c
+++ b/ext/sorgql.c
@@ -75,13 +75,13 @@ rblapack_sorgql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgqr.c b/ext/sorgqr.c
index c95c2d9..844ddb0 100644
--- a/ext/sorgqr.c
+++ b/ext/sorgqr.c
@@ -75,13 +75,13 @@ rblapack_sorgqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgr2.c b/ext/sorgr2.c
index 7191ac5..1d501c6 100644
--- a/ext/sorgr2.c
+++ b/ext/sorgr2.c
@@ -62,7 +62,7 @@ rblapack_sorgr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgrq.c b/ext/sorgrq.c
index 9ae499b..04ad5ea 100644
--- a/ext/sorgrq.c
+++ b/ext/sorgrq.c
@@ -75,13 +75,13 @@ rblapack_sorgrq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorgtr.c b/ext/sorgtr.c
index 92a2d42..81d3ed2 100644
--- a/ext/sorgtr.c
+++ b/ext/sorgtr.c
@@ -75,13 +75,13 @@ rblapack_sorgtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorm2l.c b/ext/sorm2l.c
index 66dac58..1d806ac 100644
--- a/ext/sorm2l.c
+++ b/ext/sorm2l.c
@@ -86,7 +86,7 @@ rblapack_sorm2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorm2r.c b/ext/sorm2r.c
index 9c9d1ba..b8b0ee2 100644
--- a/ext/sorm2r.c
+++ b/ext/sorm2r.c
@@ -86,7 +86,7 @@ rblapack_sorm2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormbr.c b/ext/sormbr.c
index 1e7c0e8..34eae5f 100644
--- a/ext/sormbr.c
+++ b/ext/sormbr.c
@@ -107,13 +107,13 @@ rblapack_sormbr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormhr.c b/ext/sormhr.c
index 17fcfb2..06ac43c 100644
--- a/ext/sormhr.c
+++ b/ext/sormhr.c
@@ -101,13 +101,13 @@ rblapack_sormhr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sorml2.c b/ext/sorml2.c
index cda0b4e..294cb72 100644
--- a/ext/sorml2.c
+++ b/ext/sorml2.c
@@ -82,7 +82,7 @@ rblapack_sorml2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormlq.c b/ext/sormlq.c
index 37ee713..58f41e1 100644
--- a/ext/sormlq.c
+++ b/ext/sormlq.c
@@ -93,13 +93,13 @@ rblapack_sormlq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormql.c b/ext/sormql.c
index 2a1d16c..0711e9e 100644
--- a/ext/sormql.c
+++ b/ext/sormql.c
@@ -97,13 +97,13 @@ rblapack_sormql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormqr.c b/ext/sormqr.c
index 41254cc..9d829d1 100644
--- a/ext/sormqr.c
+++ b/ext/sormqr.c
@@ -97,13 +97,13 @@ rblapack_sormqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormr2.c b/ext/sormr2.c
index e74e96c..843ee24 100644
--- a/ext/sormr2.c
+++ b/ext/sormr2.c
@@ -82,7 +82,7 @@ rblapack_sormr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormr3.c b/ext/sormr3.c
index c4937ce..1b382aa 100644
--- a/ext/sormr3.c
+++ b/ext/sormr3.c
@@ -86,7 +86,7 @@ rblapack_sormr3(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormrq.c b/ext/sormrq.c
index 3c9de44..a471a2d 100644
--- a/ext/sormrq.c
+++ b/ext/sormrq.c
@@ -93,13 +93,13 @@ rblapack_sormrq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormrz.c b/ext/sormrz.c
index 19216c9..1560bfb 100644
--- a/ext/sormrz.c
+++ b/ext/sormrz.c
@@ -97,13 +97,13 @@ rblapack_sormrz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sormtr.c b/ext/sormtr.c
index a040e10..aead3c5 100644
--- a/ext/sormtr.c
+++ b/ext/sormtr.c
@@ -97,13 +97,13 @@ rblapack_sormtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_SFLOAT);
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbequ.c b/ext/spbequ.c
index e523f1b..00f26aa 100644
--- a/ext/spbequ.c
+++ b/ext/spbequ.c
@@ -59,7 +59,7 @@ rblapack_spbequ(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spbrfs.c b/ext/spbrfs.c
index bacd8ff..3a1768f 100644
--- a/ext/spbrfs.c
+++ b/ext/spbrfs.c
@@ -103,19 +103,19 @@ rblapack_spbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_afb = na_change_type(rblapack_afb, NA_SFLOAT);
   afb = NA_PTR_TYPE(rblapack_afb, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbstf.c b/ext/spbstf.c
index 560c6e4..8d9001d 100644
--- a/ext/spbstf.c
+++ b/ext/spbstf.c
@@ -55,7 +55,7 @@ rblapack_spbstf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbsv.c b/ext/spbsv.c
index 0a7dfaa..664243b 100644
--- a/ext/spbsv.c
+++ b/ext/spbsv.c
@@ -71,7 +71,7 @@ rblapack_spbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_spbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbsvx.c b/ext/spbsvx.c
index 8b780fb..72c578b 100644
--- a/ext/spbsvx.c
+++ b/ext/spbsvx.c
@@ -121,26 +121,26 @@ rblapack_spbsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_spbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_spbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -169,7 +169,7 @@ rblapack_spbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbtf2.c b/ext/spbtf2.c
index b208bcd..f73bd74 100644
--- a/ext/spbtf2.c
+++ b/ext/spbtf2.c
@@ -55,7 +55,7 @@ rblapack_spbtf2(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbtrf.c b/ext/spbtrf.c
index 59aab62..0d3846e 100644
--- a/ext/spbtrf.c
+++ b/ext/spbtrf.c
@@ -55,7 +55,7 @@ rblapack_spbtrf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spbtrs.c b/ext/spbtrs.c
index 6a9b994..2eae738 100644
--- a/ext/spbtrs.c
+++ b/ext/spbtrs.c
@@ -69,7 +69,7 @@ rblapack_spbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spftrf.c b/ext/spftrf.c
index 7599dfe..ac6e5c8 100644
--- a/ext/spftrf.c
+++ b/ext/spftrf.c
@@ -57,7 +57,7 @@ rblapack_spftrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spftri.c b/ext/spftri.c
index 79addd3..4633509 100644
--- a/ext/spftri.c
+++ b/ext/spftri.c
@@ -57,7 +57,7 @@ rblapack_spftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spftrs.c b/ext/spftrs.c
index f314b7f..8c76868 100644
--- a/ext/spftrs.c
+++ b/ext/spftrs.c
@@ -71,7 +71,7 @@ rblapack_spftrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spoequ.c b/ext/spoequ.c
index 51b0285..ceae9b9 100644
--- a/ext/spoequ.c
+++ b/ext/spoequ.c
@@ -51,7 +51,7 @@ rblapack_spoequ(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spoequb.c b/ext/spoequb.c
index c3f46a9..b4ea57b 100644
--- a/ext/spoequb.c
+++ b/ext/spoequb.c
@@ -51,7 +51,7 @@ rblapack_spoequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sporfs.c b/ext/sporfs.c
index 67402e1..bcf6f62 100644
--- a/ext/sporfs.c
+++ b/ext/sporfs.c
@@ -99,19 +99,19 @@ rblapack_sporfs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sporfsx.c b/ext/sporfsx.c
index 2196749..c0ad958 100644
--- a/ext/sporfsx.c
+++ b/ext/sporfsx.c
@@ -137,27 +137,27 @@ rblapack_sporfsx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_SFLOAT);
   params = NA_PTR_TYPE(rblapack_params, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_sporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_sporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sposv.c b/ext/sposv.c
index 682156a..9bb0885 100644
--- a/ext/sposv.c
+++ b/ext/sposv.c
@@ -67,7 +67,7 @@ rblapack_sposv(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_sposv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sposvx.c b/ext/sposvx.c
index 1235735..2c533cd 100644
--- a/ext/sposvx.c
+++ b/ext/sposvx.c
@@ -117,26 +117,26 @@ rblapack_sposvx(int argc, VALUE *argv, VALUE self){
   af = NA_PTR_TYPE(rblapack_af, real*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_sposvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_sposvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -165,7 +165,7 @@ rblapack_sposvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sposvxx.c b/ext/sposvxx.c
index 2b6fbd8..f9f9dcb 100644
--- a/ext/sposvxx.c
+++ b/ext/sposvxx.c
@@ -137,34 +137,34 @@ rblapack_sposvxx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_SFLOAT);
   params = NA_PTR_TYPE(rblapack_params, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -174,7 +174,7 @@ rblapack_sposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_sposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -193,7 +193,7 @@ rblapack_sposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_sposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spotf2.c b/ext/spotf2.c
index bb6420e..6057070 100644
--- a/ext/spotf2.c
+++ b/ext/spotf2.c
@@ -51,7 +51,7 @@ rblapack_spotf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spotrf.c b/ext/spotrf.c
index 29ef7e3..8fdc774 100644
--- a/ext/spotrf.c
+++ b/ext/spotrf.c
@@ -51,7 +51,7 @@ rblapack_spotrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spotri.c b/ext/spotri.c
index 11f67ea..5e20a96 100644
--- a/ext/spotri.c
+++ b/ext/spotri.c
@@ -51,7 +51,7 @@ rblapack_spotri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spotrs.c b/ext/spotrs.c
index 39c2ded..286a538 100644
--- a/ext/spotrs.c
+++ b/ext/spotrs.c
@@ -65,7 +65,7 @@ rblapack_spotrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sppequ.c b/ext/sppequ.c
index 98b9e3b..c0663fe 100644
--- a/ext/sppequ.c
+++ b/ext/sppequ.c
@@ -55,7 +55,7 @@ rblapack_sppequ(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spprfs.c b/ext/spprfs.c
index a92a0b1..46f4081 100644
--- a/ext/spprfs.c
+++ b/ext/spprfs.c
@@ -97,19 +97,19 @@ rblapack_spprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sppsv.c b/ext/sppsv.c
index c2cbcf9..2b2547a 100644
--- a/ext/sppsv.c
+++ b/ext/sppsv.c
@@ -69,7 +69,7 @@ rblapack_sppsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_sppsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sppsvx.c b/ext/sppsvx.c
index b396704..c7429db 100644
--- a/ext/sppsvx.c
+++ b/ext/sppsvx.c
@@ -113,26 +113,26 @@ rblapack_sppsvx(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_sppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -150,7 +150,7 @@ rblapack_sppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -159,7 +159,7 @@ rblapack_sppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spptrf.c b/ext/spptrf.c
index 3ff6133..d9130ea 100644
--- a/ext/spptrf.c
+++ b/ext/spptrf.c
@@ -53,7 +53,7 @@ rblapack_spptrf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spptri.c b/ext/spptri.c
index cc82e57..69cf993 100644
--- a/ext/spptri.c
+++ b/ext/spptri.c
@@ -53,7 +53,7 @@ rblapack_spptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spptrs.c b/ext/spptrs.c
index cc7748a..9052e55 100644
--- a/ext/spptrs.c
+++ b/ext/spptrs.c
@@ -67,7 +67,7 @@ rblapack_spptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spstf2.c b/ext/spstf2.c
index e961b52..287ff06 100644
--- a/ext/spstf2.c
+++ b/ext/spstf2.c
@@ -60,13 +60,13 @@ rblapack_spstf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spstrf.c b/ext/spstrf.c
index 4f00dcc..fae52ba 100644
--- a/ext/spstrf.c
+++ b/ext/spstrf.c
@@ -60,13 +60,13 @@ rblapack_spstrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/spteqr.c b/ext/spteqr.c
index feeac4f..c6fe203 100644
--- a/ext/spteqr.c
+++ b/ext/spteqr.c
@@ -80,7 +80,7 @@ rblapack_spteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_spteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_spteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sptrfs.c b/ext/sptrfs.c
index 2d2676d..c4e0cf6 100644
--- a/ext/sptrfs.c
+++ b/ext/sptrfs.c
@@ -114,19 +114,19 @@ rblapack_sptrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ef = na_change_type(rblapack_ef, NA_SFLOAT);
   ef = NA_PTR_TYPE(rblapack_ef, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sptsv.c b/ext/sptsv.c
index ed9df70..84ef726 100644
--- a/ext/sptsv.c
+++ b/ext/sptsv.c
@@ -75,7 +75,7 @@ rblapack_sptsv(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_sptsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -93,7 +93,7 @@ rblapack_sptsv(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sptsvx.c b/ext/sptsvx.c
index d2f7bf0..b075e88 100644
--- a/ext/sptsvx.c
+++ b/ext/sptsvx.c
@@ -112,26 +112,26 @@ rblapack_sptsvx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -140,7 +140,7 @@ rblapack_sptsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_ef_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spttrf.c b/ext/spttrf.c
index ae160f5..11567f5 100644
--- a/ext/spttrf.c
+++ b/ext/spttrf.c
@@ -59,7 +59,7 @@ rblapack_spttrf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_spttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/spttrs.c b/ext/spttrs.c
index cd049ac..d9c54a9 100644
--- a/ext/spttrs.c
+++ b/ext/spttrs.c
@@ -71,7 +71,7 @@ rblapack_spttrs(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sptts2.c b/ext/sptts2.c
index f34175d..1127ebf 100644
--- a/ext/sptts2.c
+++ b/ext/sptts2.c
@@ -69,7 +69,7 @@ rblapack_sptts2(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/srscl.c b/ext/srscl.c
index 7203e3f..83b4690 100644
--- a/ext/srscl.c
+++ b/ext/srscl.c
@@ -55,7 +55,7 @@ rblapack_srscl(int argc, VALUE *argv, VALUE self){
     rblapack_sx = na_change_type(rblapack_sx, NA_SFLOAT);
   sx = NA_PTR_TYPE(rblapack_sx, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_sx_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssbev.c b/ext/ssbev.c
index e3b8194..9fa56af 100644
--- a/ext/ssbev.c
+++ b/ext/ssbev.c
@@ -66,20 +66,20 @@ rblapack_ssbev(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbevd.c b/ext/ssbevd.c
index 825b3e3..98e3f6f 100644
--- a/ext/ssbevd.c
+++ b/ext/ssbevd.c
@@ -89,32 +89,32 @@ rblapack_ssbevd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbevx.c b/ext/ssbevx.c
index 9bdf7a4..3e8f443 100644
--- a/ext/ssbevx.c
+++ b/ext/ssbevx.c
@@ -100,33 +100,33 @@ rblapack_ssbevx(int argc, VALUE *argv, VALUE self){
   il = NUM2INT(rblapack_il);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbgst.c b/ext/ssbgst.c
index 18c0fce..ab589e7 100644
--- a/ext/ssbgst.c
+++ b/ext/ssbgst.c
@@ -82,14 +82,14 @@ rblapack_ssbgst(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldx = lsame_(&vect,"V") ? MAX(1,n) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbgv.c b/ext/ssbgv.c
index 3043018..cfeaa5a 100644
--- a/ext/ssbgv.c
+++ b/ext/ssbgv.c
@@ -86,20 +86,20 @@ rblapack_ssbgv(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldz = lsame_(&jobz,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_ssbgv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbgvd.c b/ext/ssbgvd.c
index 99edaa6..bc854be 100644
--- a/ext/ssbgvd.c
+++ b/ext/ssbgvd.c
@@ -109,32 +109,32 @@ rblapack_ssbgvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_ssbgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbgvx.c b/ext/ssbgvx.c
index 63b112b..02a8cf9 100644
--- a/ext/ssbgvx.c
+++ b/ext/ssbgvx.c
@@ -122,45 +122,45 @@ rblapack_ssbgvx(int argc, VALUE *argv, VALUE self){
   vl = (real)NUM2DBL(rblapack_vl);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 7*n;
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 5*n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -170,7 +170,7 @@ rblapack_ssbgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssbtrd.c b/ext/ssbtrd.c
index 1d06d1f..0795abb 100644
--- a/ext/ssbtrd.c
+++ b/ext/ssbtrd.c
@@ -80,19 +80,19 @@ rblapack_ssbtrd(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_SFLOAT);
   ab = NA_PTR_TYPE(rblapack_ab, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_ssbtrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssfrk.c b/ext/ssfrk.c
index f07c2de..a6cb5d3 100644
--- a/ext/ssfrk.c
+++ b/ext/ssfrk.c
@@ -85,7 +85,7 @@ rblapack_ssfrk(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nt;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspev.c b/ext/sspev.c
index ce775a3..3a606ca 100644
--- a/ext/sspev.c
+++ b/ext/sspev.c
@@ -62,20 +62,20 @@ rblapack_sspev(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspevd.c b/ext/sspevd.c
index 8b67f1d..ad50b7f 100644
--- a/ext/sspevd.c
+++ b/ext/sspevd.c
@@ -85,32 +85,32 @@ rblapack_sspevd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspevx.c b/ext/sspevx.c
index 0592d2a..b0a1070 100644
--- a/ext/sspevx.c
+++ b/ext/sspevx.c
@@ -92,26 +92,26 @@ rblapack_sspevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspgst.c b/ext/sspgst.c
index 7c1aed9..b7d4924 100644
--- a/ext/sspgst.c
+++ b/ext/sspgst.c
@@ -69,7 +69,7 @@ rblapack_sspgst(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspgv.c b/ext/sspgv.c
index e442715..2bfb6e6 100644
--- a/ext/sspgv.c
+++ b/ext/sspgv.c
@@ -80,20 +80,20 @@ rblapack_sspgv(int argc, VALUE *argv, VALUE self){
   bp = NA_PTR_TYPE(rblapack_bp, real*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_sspgv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspgvd.c b/ext/sspgvd.c
index 6e2fb0b..38b081b 100644
--- a/ext/sspgvd.c
+++ b/ext/sspgvd.c
@@ -103,32 +103,32 @@ rblapack_sspgvd(int argc, VALUE *argv, VALUE self){
   }
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -137,7 +137,7 @@ rblapack_sspgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sspgvx.c b/ext/sspgvx.c
index dde37af..b6c95da 100644
--- a/ext/sspgvx.c
+++ b/ext/sspgvx.c
@@ -110,26 +110,26 @@ rblapack_sspgvx(int argc, VALUE *argv, VALUE self){
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   vu = (real)NUM2DBL(rblapack_vu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_sspgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssprfs.c b/ext/ssprfs.c
index 326d22b..c7c3085 100644
--- a/ext/ssprfs.c
+++ b/ext/ssprfs.c
@@ -107,19 +107,19 @@ rblapack_ssprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_SFLOAT);
   afp = NA_PTR_TYPE(rblapack_afp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sspsv.c b/ext/sspsv.c
index f402d30..b803619 100644
--- a/ext/sspsv.c
+++ b/ext/sspsv.c
@@ -69,13 +69,13 @@ rblapack_sspsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_sspsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sspsvx.c b/ext/sspsvx.c
index 3e6303f..32b7e2a 100644
--- a/ext/sspsvx.c
+++ b/ext/sspsvx.c
@@ -105,26 +105,26 @@ rblapack_sspsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_sspsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/ssptrd.c b/ext/ssptrd.c
index 1f37d1f..e0c0a76 100644
--- a/ext/ssptrd.c
+++ b/ext/ssptrd.c
@@ -57,25 +57,25 @@ rblapack_ssptrd(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssptrf.c b/ext/ssptrf.c
index 396cd4a..91ef61d 100644
--- a/ext/ssptrf.c
+++ b/ext/ssptrf.c
@@ -53,13 +53,13 @@ rblapack_ssptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssptri.c b/ext/ssptri.c
index a28678f..b3a2b31 100644
--- a/ext/ssptri.c
+++ b/ext/ssptri.c
@@ -62,7 +62,7 @@ rblapack_ssptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssptrs.c b/ext/ssptrs.c
index f17c64c..a2442f9 100644
--- a/ext/ssptrs.c
+++ b/ext/ssptrs.c
@@ -75,7 +75,7 @@ rblapack_ssptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sstebz.c b/ext/sstebz.c
index bb3772a..40a5f35 100644
--- a/ext/sstebz.c
+++ b/ext/sstebz.c
@@ -95,19 +95,19 @@ rblapack_sstebz(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iblock = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iblock = NA_PTR_TYPE(rblapack_iblock, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_isplit = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sstedc.c b/ext/sstedc.c
index bd9f868..49f9a58 100644
--- a/ext/sstedc.c
+++ b/ext/sstedc.c
@@ -103,19 +103,19 @@ rblapack_sstedc(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -124,7 +124,7 @@ rblapack_sstedc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_sstedc(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/sstegr.c b/ext/sstegr.c
index dc19e76..583af96 100644
--- a/ext/sstegr.c
+++ b/ext/sstegr.c
@@ -122,38 +122,38 @@ rblapack_sstegr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_sstegr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sstein.c b/ext/sstein.c
index 049e437..ccbc75c 100644
--- a/ext/sstein.c
+++ b/ext/sstein.c
@@ -101,14 +101,14 @@ rblapack_sstein(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   ldz = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = m;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/sstemr.c b/ext/sstemr.c
index 40b4dd9..fcaafca 100644
--- a/ext/sstemr.c
+++ b/ext/sstemr.c
@@ -126,38 +126,38 @@ rblapack_sstemr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_sstemr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssteqr.c b/ext/ssteqr.c
index 4084b6c..7fa6202 100644
--- a/ext/ssteqr.c
+++ b/ext/ssteqr.c
@@ -80,7 +80,7 @@ rblapack_ssteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_ssteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_ssteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssterf.c b/ext/ssterf.c
index 65598be..173344a 100644
--- a/ext/ssterf.c
+++ b/ext/ssterf.c
@@ -59,7 +59,7 @@ rblapack_ssterf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_ssterf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sstev.c b/ext/sstev.c
index f16109f..9b444ca 100644
--- a/ext/sstev.c
+++ b/ext/sstev.c
@@ -68,14 +68,14 @@ rblapack_sstev(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_SFLOAT);
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_sstev(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sstevd.c b/ext/sstevd.c
index 2e35a8f..12f218d 100644
--- a/ext/sstevd.c
+++ b/ext/sstevd.c
@@ -91,26 +91,26 @@ rblapack_sstevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -119,7 +119,7 @@ rblapack_sstevd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sstevr.c b/ext/sstevr.c
index a8735f4..115d071 100644
--- a/ext/sstevr.c
+++ b/ext/sstevr.c
@@ -122,38 +122,38 @@ rblapack_sstevr(int argc, VALUE *argv, VALUE self){
   iu = NUM2INT(rblapack_iu);
   m = lsame_(&range,"I") ? iu-il+1 : n;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_sstevr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n-1);
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/sstevx.c b/ext/sstevx.c
index 7d38c35..e76d5b1 100644
--- a/ext/sstevx.c
+++ b/ext/sstevx.c
@@ -100,26 +100,26 @@ rblapack_sstevx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, real*);
   iu = NUM2INT(rblapack_iu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -128,7 +128,7 @@ rblapack_sstevx(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n-1);
     rblapack_e_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssyequb.c b/ext/ssyequb.c
index 3db130e..21b2d58 100644
--- a/ext/ssyequb.c
+++ b/ext/ssyequb.c
@@ -56,7 +56,7 @@ rblapack_ssyequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssyev.c b/ext/ssyev.c
index 3e3d432..5dbb925 100644
--- a/ext/ssyev.c
+++ b/ext/ssyev.c
@@ -69,19 +69,19 @@ rblapack_ssyev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssyevd.c b/ext/ssyevd.c
index 575f3a5..7416b08 100644
--- a/ext/ssyevd.c
+++ b/ext/ssyevd.c
@@ -81,25 +81,25 @@ rblapack_ssyevd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssyevr.c b/ext/ssyevr.c
index 0dd4db9..3f08fef 100644
--- a/ext/ssyevr.c
+++ b/ext/ssyevr.c
@@ -114,38 +114,38 @@ rblapack_ssyevr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssyevx.c b/ext/ssyevx.c
index 6376792..4c81eed 100644
--- a/ext/ssyevx.c
+++ b/ext/ssyevx.c
@@ -103,32 +103,32 @@ rblapack_ssyevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"I") ? iu-il+1 : n;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssygs2.c b/ext/ssygs2.c
index f24f87c..f034d15 100644
--- a/ext/ssygs2.c
+++ b/ext/ssygs2.c
@@ -69,7 +69,7 @@ rblapack_ssygs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssygst.c b/ext/ssygst.c
index 653ec8f..b1e4183 100644
--- a/ext/ssygst.c
+++ b/ext/ssygst.c
@@ -69,7 +69,7 @@ rblapack_ssygst(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssygv.c b/ext/ssygv.c
index 38b09c5..3f52799 100644
--- a/ext/ssygv.c
+++ b/ext/ssygv.c
@@ -89,19 +89,19 @@ rblapack_ssygv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_ssygv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssygvd.c b/ext/ssygvd.c
index 1eb1671..e927ac9 100644
--- a/ext/ssygvd.c
+++ b/ext/ssygvd.c
@@ -101,25 +101,25 @@ rblapack_ssygvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -129,7 +129,7 @@ rblapack_ssygvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssygvx.c b/ext/ssygvx.c
index 34095f9..3f9b83d 100644
--- a/ext/ssygvx.c
+++ b/ext/ssygvx.c
@@ -127,32 +127,32 @@ rblapack_ssygvx(int argc, VALUE *argv, VALUE self){
   vl = (real)NUM2DBL(rblapack_vl);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -162,7 +162,7 @@ rblapack_ssygvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssyrfs.c b/ext/ssyrfs.c
index 625ede7..4dba4ef 100644
--- a/ext/ssyrfs.c
+++ b/ext/ssyrfs.c
@@ -111,19 +111,19 @@ rblapack_ssyrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssyrfsx.c b/ext/ssyrfsx.c
index 78ab515..b283464 100644
--- a/ext/ssyrfsx.c
+++ b/ext/ssyrfsx.c
@@ -149,27 +149,27 @@ rblapack_ssyrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_SFLOAT);
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_ssyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_ssyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssysv.c b/ext/ssysv.c
index 224b306..eef723e 100644
--- a/ext/ssysv.c
+++ b/ext/ssysv.c
@@ -81,19 +81,19 @@ rblapack_ssysv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_ssysv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssysvx.c b/ext/ssysvx.c
index 828f534..5fd1a39 100644
--- a/ext/ssysvx.c
+++ b/ext/ssysvx.c
@@ -120,32 +120,32 @@ rblapack_ssysvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_ssysvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/ssysvxx.c b/ext/ssysvxx.c
index 7353d0d..16fafd3 100644
--- a/ext/ssysvxx.c
+++ b/ext/ssysvxx.c
@@ -151,34 +151,34 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_SFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_ssysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssyswapr.c b/ext/ssyswapr.c
index 7b857d8..ea3e27f 100644
--- a/ext/ssyswapr.c
+++ b/ext/ssyswapr.c
@@ -57,7 +57,7 @@ rblapack_ssyswapr(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   i2 = NUM2INT(rblapack_i2);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytd2.c b/ext/ssytd2.c
index e7a4c94..748fdce 100644
--- a/ext/ssytd2.c
+++ b/ext/ssytd2.c
@@ -57,25 +57,25 @@ rblapack_ssytd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytf2.c b/ext/ssytf2.c
index 1ba9dd9..5b0ca37 100644
--- a/ext/ssytf2.c
+++ b/ext/ssytf2.c
@@ -53,13 +53,13 @@ rblapack_ssytf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytrd.c b/ext/ssytrd.c
index 6de840a..07b23d8 100644
--- a/ext/ssytrd.c
+++ b/ext/ssytrd.c
@@ -63,31 +63,31 @@ rblapack_ssytrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytrf.c b/ext/ssytrf.c
index 72663e4..0d05fca 100644
--- a/ext/ssytrf.c
+++ b/ext/ssytrf.c
@@ -59,19 +59,19 @@ rblapack_ssytrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytri.c b/ext/ssytri.c
index 4db7ea0..75292e7 100644
--- a/ext/ssytri.c
+++ b/ext/ssytri.c
@@ -64,7 +64,7 @@ rblapack_ssytri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytri2.c b/ext/ssytri2.c
index 6275fd3..652b559 100644
--- a/ext/ssytri2.c
+++ b/ext/ssytri2.c
@@ -92,7 +92,7 @@ rblapack_ssytri2(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_ssytri2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = lwork;
     rblapack_work_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ssytri2x.c b/ext/ssytri2x.c
index 07b7f10..272b9ed 100644
--- a/ext/ssytri2x.c
+++ b/ext/ssytri2x.c
@@ -68,7 +68,7 @@ rblapack_ssytri2x(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   nb = NUM2INT(rblapack_nb);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytrs.c b/ext/ssytrs.c
index 293ee14..76c16db 100644
--- a/ext/ssytrs.c
+++ b/ext/ssytrs.c
@@ -77,7 +77,7 @@ rblapack_ssytrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/ssytrs2.c b/ext/ssytrs2.c
index fb61c1c..aa73107 100644
--- a/ext/ssytrs2.c
+++ b/ext/ssytrs2.c
@@ -78,7 +78,7 @@ rblapack_ssytrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_SFLOAT);
   b = NA_PTR_TYPE(rblapack_b, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stbrfs.c b/ext/stbrfs.c
index b35328f..9d877bc 100644
--- a/ext/stbrfs.c
+++ b/ext/stbrfs.c
@@ -95,13 +95,13 @@ rblapack_stbrfs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stbtrs.c b/ext/stbtrs.c
index 5486053..c0fbb84 100644
--- a/ext/stbtrs.c
+++ b/ext/stbtrs.c
@@ -77,7 +77,7 @@ rblapack_stbtrs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, real*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stfsm.c b/ext/stfsm.c
index fc43b10..050ee66 100644
--- a/ext/stfsm.c
+++ b/ext/stfsm.c
@@ -87,7 +87,7 @@ rblapack_stfsm(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stftri.c b/ext/stftri.c
index 3172aab..2538e4f 100644
--- a/ext/stftri.c
+++ b/ext/stftri.c
@@ -61,7 +61,7 @@ rblapack_stftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stfttp.c b/ext/stfttp.c
index 704642e..1c41d29 100644
--- a/ext/stfttp.c
+++ b/ext/stfttp.c
@@ -57,7 +57,7 @@ rblapack_stfttp(int argc, VALUE *argv, VALUE self){
     rblapack_arf = na_change_type(rblapack_arf, NA_SFLOAT);
   arf = NA_PTR_TYPE(rblapack_arf, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stfttr.c b/ext/stfttr.c
index f6d8cd7..8897073 100644
--- a/ext/stfttr.c
+++ b/ext/stfttr.c
@@ -57,7 +57,7 @@ rblapack_stfttr(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgevc.c b/ext/stgevc.c
index 97ec2e8..ce2429a 100644
--- a/ext/stgevc.c
+++ b/ext/stgevc.c
@@ -114,7 +114,7 @@ rblapack_stgevc(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -124,7 +124,7 @@ rblapack_stgevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgex2.c b/ext/stgex2.c
index 905de88..94e2543 100644
--- a/ext/stgex2.c
+++ b/ext/stgex2.c
@@ -126,7 +126,7 @@ rblapack_stgex2(int argc, VALUE *argv, VALUE self){
   lwork = MAX(1,(MAX(n*(n2+n1),(n2+n1)*(n2+n1)*2)));
   j1 = NUM2INT(rblapack_j1);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -136,7 +136,7 @@ rblapack_stgex2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_stgex2(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_stgex2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgexc.c b/ext/stgexc.c
index 7296cd1..8f92397 100644
--- a/ext/stgexc.c
+++ b/ext/stgexc.c
@@ -127,13 +127,13 @@ rblapack_stgexc(int argc, VALUE *argv, VALUE self){
   }
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -143,7 +143,7 @@ rblapack_stgexc(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -153,7 +153,7 @@ rblapack_stgexc(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -163,7 +163,7 @@ rblapack_stgexc(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgsen.c b/ext/stgsen.c
index 80a95d1..bf8c2b7 100644
--- a/ext/stgsen.c
+++ b/ext/stgsen.c
@@ -157,43 +157,43 @@ rblapack_stgsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphar = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphar = NA_PTR_TYPE(rblapack_alphar, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alphai = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alphai = NA_PTR_TYPE(rblapack_alphai, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_dif = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_stgsen(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -213,7 +213,7 @@ rblapack_stgsen(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_stgsen(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgsja.c b/ext/stgsja.c
index e47a105..fcfc5e9 100644
--- a/ext/stgsja.c
+++ b/ext/stgsja.c
@@ -146,19 +146,19 @@ rblapack_stgsja(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, real*);
   tola = (real)NUM2DBL(rblapack_tola);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -168,7 +168,7 @@ rblapack_stgsja(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_stgsja(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_stgsja(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_stgsja(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgsna.c b/ext/stgsna.c
index fc8a540..5fd8ee1 100644
--- a/ext/stgsna.c
+++ b/ext/stgsna.c
@@ -127,19 +127,19 @@ rblapack_stgsna(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_dif = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stgsy2.c b/ext/stgsy2.c
index 5b6cfc2..f7ecc32 100644
--- a/ext/stgsy2.c
+++ b/ext/stgsy2.c
@@ -140,7 +140,7 @@ rblapack_stgsy2(int argc, VALUE *argv, VALUE self){
     rblapack_f = na_change_type(rblapack_f, NA_SFLOAT);
   f = NA_PTR_TYPE(rblapack_f, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_stgsy2(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stgsyl.c b/ext/stgsyl.c
index 3267877..96a3dd7 100644
--- a/ext/stgsyl.c
+++ b/ext/stgsyl.c
@@ -144,13 +144,13 @@ rblapack_stgsyl(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_stgsyl(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stprfs.c b/ext/stprfs.c
index e7232f5..8597b81 100644
--- a/ext/stprfs.c
+++ b/ext/stprfs.c
@@ -91,13 +91,13 @@ rblapack_stprfs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stptri.c b/ext/stptri.c
index b08f776..c1dca6e 100644
--- a/ext/stptri.c
+++ b/ext/stptri.c
@@ -57,7 +57,7 @@ rblapack_stptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stptrs.c b/ext/stptrs.c
index ecb5e9c..f002641 100644
--- a/ext/stptrs.c
+++ b/ext/stptrs.c
@@ -75,7 +75,7 @@ rblapack_stptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stpttf.c b/ext/stpttf.c
index 1d14142..3a4ac60 100644
--- a/ext/stpttf.c
+++ b/ext/stpttf.c
@@ -57,7 +57,7 @@ rblapack_stpttf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_SFLOAT);
   ap = NA_PTR_TYPE(rblapack_ap, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stpttr.c b/ext/stpttr.c
index 1eab861..f9baa59 100644
--- a/ext/stpttr.c
+++ b/ext/stpttr.c
@@ -53,7 +53,7 @@ rblapack_stpttr(int argc, VALUE *argv, VALUE self){
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strevc.c b/ext/strevc.c
index 61863a9..55d6268 100644
--- a/ext/strevc.c
+++ b/ext/strevc.c
@@ -102,7 +102,7 @@ rblapack_strevc(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_SFLOAT);
   t = NA_PTR_TYPE(rblapack_t, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_select_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -111,7 +111,7 @@ rblapack_strevc(int argc, VALUE *argv, VALUE self){
   rblapack_select = rblapack_select_out__;
   select = select_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_strevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strexc.c b/ext/strexc.c
index 9db2ba3..67a43a5 100644
--- a/ext/strexc.c
+++ b/ext/strexc.c
@@ -76,7 +76,7 @@ rblapack_strexc(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, real*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -86,7 +86,7 @@ rblapack_strexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strrfs.c b/ext/strrfs.c
index 139c3a2..c422c9c 100644
--- a/ext/strrfs.c
+++ b/ext/strrfs.c
@@ -91,13 +91,13 @@ rblapack_strrfs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/strsen.c b/ext/strsen.c
index 78201e8..8f09ff8 100644
--- a/ext/strsen.c
+++ b/ext/strsen.c
@@ -110,25 +110,25 @@ rblapack_strsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wr = NA_PTR_TYPE(rblapack_wr, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wi = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   wi = NA_PTR_TYPE(rblapack_wi, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_strsen(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strsna.c b/ext/strsna.c
index 3cea230..c3747e6 100644
--- a/ext/strsna.c
+++ b/ext/strsna.c
@@ -104,13 +104,13 @@ rblapack_strsna(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, real*);
   ldwork = ((lsame_(&job,"V")) || (lsame_(&job,"B"))) ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_sep = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/strsyl.c b/ext/strsyl.c
index 0272295..63d2de0 100644
--- a/ext/strsyl.c
+++ b/ext/strsyl.c
@@ -89,7 +89,7 @@ rblapack_strsyl(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strti2.c b/ext/strti2.c
index 7dfdbe8..a599bef 100644
--- a/ext/strti2.c
+++ b/ext/strti2.c
@@ -55,7 +55,7 @@ rblapack_strti2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strtri.c b/ext/strtri.c
index b7e94a3..ed31754 100644
--- a/ext/strtri.c
+++ b/ext/strtri.c
@@ -55,7 +55,7 @@ rblapack_strtri(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strtrs.c b/ext/strtrs.c
index 202f4da..0d82f87 100644
--- a/ext/strtrs.c
+++ b/ext/strtrs.c
@@ -73,7 +73,7 @@ rblapack_strtrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/strttf.c b/ext/strttf.c
index bc857d1..a77c517 100644
--- a/ext/strttf.c
+++ b/ext/strttf.c
@@ -55,7 +55,7 @@ rblapack_strttf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   uplo = StringValueCStr(rblapack_uplo)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_arf = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/strttp.c b/ext/strttp.c
index 3820244..1b6adfd 100644
--- a/ext/strttp.c
+++ b/ext/strttp.c
@@ -51,7 +51,7 @@ rblapack_strttp(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
   a = NA_PTR_TYPE(rblapack_a, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/stzrqf.c b/ext/stzrqf.c
index 411ffe0..2935481 100644
--- a/ext/stzrqf.c
+++ b/ext/stzrqf.c
@@ -51,13 +51,13 @@ rblapack_stzrqf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, real*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/stzrzf.c b/ext/stzrzf.c
index 80e5b6b..e975517 100644
--- a/ext/stzrzf.c
+++ b/ext/stzrzf.c
@@ -63,19 +63,19 @@ rblapack_stzrzf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, real*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, real*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
diff --git a/ext/zbbcsd.c b/ext/zbbcsd.c
index 223a923..a79788f 100644
--- a/ext/zbbcsd.c
+++ b/ext/zbbcsd.c
@@ -168,55 +168,55 @@ rblapack_zbbcsd(int argc, VALUE *argv, VALUE self){
     rblapack_phi = na_change_type(rblapack_phi, NA_DFLOAT);
   phi = NA_PTR_TYPE(rblapack_phi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b11d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b11d = NA_PTR_TYPE(rblapack_b11d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b11e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b11e = NA_PTR_TYPE(rblapack_b11e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b12d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b12d = NA_PTR_TYPE(rblapack_b12d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b12e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b12e = NA_PTR_TYPE(rblapack_b12e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b21d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b21d = NA_PTR_TYPE(rblapack_b21d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b21e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b21e = NA_PTR_TYPE(rblapack_b21e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_b22d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b22d = NA_PTR_TYPE(rblapack_b22d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_b22e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   b22e = NA_PTR_TYPE(rblapack_b22e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -225,7 +225,7 @@ rblapack_zbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_theta = rblapack_theta_out__;
   theta = theta_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu1;
     shape[1] = p;
     rblapack_u1_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_zbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u1 = rblapack_u1_out__;
   u1 = u1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu2;
     shape[1] = m-p;
     rblapack_u2_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_zbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_u2 = rblapack_u2_out__;
   u2 = u2_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv1t;
     shape[1] = q;
     rblapack_v1t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_zbbcsd(int argc, VALUE *argv, VALUE self){
   rblapack_v1t = rblapack_v1t_out__;
   v1t = v1t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv2t;
     shape[1] = m-q;
     rblapack_v2t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zbdsqr.c b/ext/zbdsqr.c
index 838ce13..4577740 100644
--- a/ext/zbdsqr.c
+++ b/ext/zbdsqr.c
@@ -116,7 +116,7 @@ rblapack_zbdsqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_zbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -134,7 +134,7 @@ rblapack_zbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = ncvt;
     rblapack_vt_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -144,7 +144,7 @@ rblapack_zbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_vt = rblapack_vt_out__;
   vt = vt_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = n;
     rblapack_u_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_zbdsqr(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zcgesv.c b/ext/zcgesv.c
index 0886a80..8f5fb14 100644
--- a/ext/zcgesv.c
+++ b/ext/zcgesv.c
@@ -72,20 +72,20 @@ rblapack_zcgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zcposv.c b/ext/zcposv.c
index dcfa853..17edb2f 100644
--- a/ext/zcposv.c
+++ b/ext/zcposv.c
@@ -74,14 +74,14 @@ rblapack_zcposv(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zdrscl.c b/ext/zdrscl.c
index f28972c..306e663 100644
--- a/ext/zdrscl.c
+++ b/ext/zdrscl.c
@@ -55,7 +55,7 @@ rblapack_zdrscl(int argc, VALUE *argv, VALUE self){
     rblapack_sx = na_change_type(rblapack_sx, NA_DCOMPLEX);
   sx = NA_PTR_TYPE(rblapack_sx, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_sx_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zgbbrd.c b/ext/zgbbrd.c
index f14752c..37f7169 100644
--- a/ext/zgbbrd.c
+++ b/ext/zgbbrd.c
@@ -91,33 +91,33 @@ rblapack_zgbbrd(int argc, VALUE *argv, VALUE self){
   m = ldab;
   ldq = ((lsame_(&vect,"Q")) || (lsame_(&vect,"B"))) ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = m;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldpt;
     shape[1] = n;
     rblapack_pt = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   pt = NA_PTR_TYPE(rblapack_pt, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_zgbbrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = ncc;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbequ.c b/ext/zgbequ.c
index 1ac077e..e11ee34 100644
--- a/ext/zgbequ.c
+++ b/ext/zgbequ.c
@@ -67,13 +67,13 @@ rblapack_zgbequ(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,m);
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgbequb.c b/ext/zgbequb.c
index 2bfb902..ea414d1 100644
--- a/ext/zgbequb.c
+++ b/ext/zgbequb.c
@@ -65,13 +65,13 @@ rblapack_zgbequb(int argc, VALUE *argv, VALUE self){
   ku = NUM2INT(rblapack_ku);
   m = ldab;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgbrfs.c b/ext/zgbrfs.c
index abe60f6..67ec743 100644
--- a/ext/zgbrfs.c
+++ b/ext/zgbrfs.c
@@ -119,19 +119,19 @@ rblapack_zgbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbrfsx.c b/ext/zgbrfsx.c
index af9448b..4f551df 100644
--- a/ext/zgbrfsx.c
+++ b/ext/zgbrfsx.c
@@ -171,27 +171,27 @@ rblapack_zgbrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_r = na_change_type(rblapack_r, NA_DFLOAT);
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -200,7 +200,7 @@ rblapack_zgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -209,7 +209,7 @@ rblapack_zgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -219,7 +219,7 @@ rblapack_zgbrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgbsv.c b/ext/zgbsv.c
index 8a5f2ec..16420b2 100644
--- a/ext/zgbsv.c
+++ b/ext/zgbsv.c
@@ -73,13 +73,13 @@ rblapack_zgbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -89,7 +89,7 @@ rblapack_zgbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbsvx.c b/ext/zgbsvx.c
index a32fd57..a5dc1e6 100644
--- a/ext/zgbsvx.c
+++ b/ext/zgbsvx.c
@@ -176,32 +176,32 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
     afb = NA_PTR_TYPE(rblapack_afb, doublecomplex*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -211,7 +211,7 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -223,7 +223,7 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -234,7 +234,7 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -245,7 +245,7 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -256,7 +256,7 @@ rblapack_zgbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbsvxx.c b/ext/zgbsvxx.c
index 758cc8a..8566a86 100644
--- a/ext/zgbsvxx.c
+++ b/ext/zgbsvxx.c
@@ -173,34 +173,34 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   equed = StringValueCStr(rblapack_equed)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -210,7 +210,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -220,7 +220,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -229,7 +229,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -238,7 +238,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -247,7 +247,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_zgbsvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgbtf2.c b/ext/zgbtf2.c
index d670c7f..1fd4f78 100644
--- a/ext/zgbtf2.c
+++ b/ext/zgbtf2.c
@@ -61,13 +61,13 @@ rblapack_zgbtf2(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbtrf.c b/ext/zgbtrf.c
index c889168..afee5fe 100644
--- a/ext/zgbtrf.c
+++ b/ext/zgbtrf.c
@@ -61,13 +61,13 @@ rblapack_zgbtrf(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgbtrs.c b/ext/zgbtrs.c
index ec75a0b..4597526 100644
--- a/ext/zgbtrs.c
+++ b/ext/zgbtrs.c
@@ -85,7 +85,7 @@ rblapack_zgbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgebak.c b/ext/zgebak.c
index ad9db75..6806d2a 100644
--- a/ext/zgebak.c
+++ b/ext/zgebak.c
@@ -75,7 +75,7 @@ rblapack_zgebak(int argc, VALUE *argv, VALUE self){
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgebal.c b/ext/zgebal.c
index 8b4e230..9de802b 100644
--- a/ext/zgebal.c
+++ b/ext/zgebal.c
@@ -57,13 +57,13 @@ rblapack_zgebal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgebd2.c b/ext/zgebd2.c
index 9c4ad19..0c970b3 100644
--- a/ext/zgebd2.c
+++ b/ext/zgebd2.c
@@ -60,31 +60,31 @@ rblapack_zgebd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgebrd.c b/ext/zgebrd.c
index 7ff8a76..6ea0560 100644
--- a/ext/zgebrd.c
+++ b/ext/zgebrd.c
@@ -71,37 +71,37 @@ rblapack_zgebrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n)-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tauq = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taup = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeequ.c b/ext/zgeequ.c
index ade76a5..682593e 100644
--- a/ext/zgeequ.c
+++ b/ext/zgeequ.c
@@ -57,13 +57,13 @@ rblapack_zgeequ(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgeequb.c b/ext/zgeequb.c
index 1795e03..dce1cca 100644
--- a/ext/zgeequb.c
+++ b/ext/zgeequb.c
@@ -57,13 +57,13 @@ rblapack_zgeequb(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgees.c b/ext/zgees.c
index ab1b18c..b426edf 100644
--- a/ext/zgees.c
+++ b/ext/zgees.c
@@ -92,26 +92,26 @@ rblapack_zgees(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeesx.c b/ext/zgeesx.c
index cc70165..f339991 100644
--- a/ext/zgeesx.c
+++ b/ext/zgeesx.c
@@ -100,26 +100,26 @@ rblapack_zgeesx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvs;
     shape[1] = n;
     rblapack_vs = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vs = NA_PTR_TYPE(rblapack_vs, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeev.c b/ext/zgeev.c
index 60454c4..9c63abf 100644
--- a/ext/zgeev.c
+++ b/ext/zgeev.c
@@ -78,33 +78,33 @@ rblapack_zgeev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeevx.c b/ext/zgeevx.c
index cc27619..6b86a13 100644
--- a/ext/zgeevx.c
+++ b/ext/zgeevx.c
@@ -98,51 +98,51 @@ rblapack_zgeevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_scale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   scale = NA_PTR_TYPE(rblapack_scale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgegs.c b/ext/zgegs.c
index 189ebe5..d864cba 100644
--- a/ext/zgegs.c
+++ b/ext/zgegs.c
@@ -96,39 +96,39 @@ rblapack_zgegs(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_zgegs(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgegv.c b/ext/zgegv.c
index aa50836..eeb54e6 100644
--- a/ext/zgegv.c
+++ b/ext/zgegv.c
@@ -97,45 +97,45 @@ rblapack_zgegv(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 8*n;
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_zgegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgehd2.c b/ext/zgehd2.c
index 73cfc55..9ebb90d 100644
--- a/ext/zgehd2.c
+++ b/ext/zgehd2.c
@@ -58,13 +58,13 @@ rblapack_zgehd2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgehrd.c b/ext/zgehrd.c
index bd07ce7..eeb3e11 100644
--- a/ext/zgehrd.c
+++ b/ext/zgehrd.c
@@ -69,19 +69,19 @@ rblapack_zgehrd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgelq2.c b/ext/zgelq2.c
index 49d6233..9da68ad 100644
--- a/ext/zgelq2.c
+++ b/ext/zgelq2.c
@@ -52,13 +52,13 @@ rblapack_zgelq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgelqf.c b/ext/zgelqf.c
index 6ba75ba..c636e61 100644
--- a/ext/zgelqf.c
+++ b/ext/zgelqf.c
@@ -65,19 +65,19 @@ rblapack_zgelqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgels.c b/ext/zgels.c
index e609d3c..8e3b10f 100644
--- a/ext/zgels.c
+++ b/ext/zgels.c
@@ -83,13 +83,13 @@ rblapack_zgels(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_zgels(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgelsd.c b/ext/zgelsd.c
index 128b6c5..bb440a8 100644
--- a/ext/zgelsd.c
+++ b/ext/zgelsd.c
@@ -99,19 +99,19 @@ rblapack_zgelsd(int argc, VALUE *argv, VALUE self){
   liwork = MAX(1,3*(MIN(m,n))*nlvl+11*(MIN(m,n)));
   lrwork = m>=n ? 10*n+2*n*smlsiz+8*n*nlvl+3*smlsiz*nrhs+(smlsiz+1)*(smlsiz+1) : 10*m+2*m*smlsiz+8*m*nlvl+2*smlsiz*nrhs+(smlsiz+1)*(smlsiz+1);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgelss.c b/ext/zgelss.c
index 0282e0b..1e55d7e 100644
--- a/ext/zgelss.c
+++ b/ext/zgelss.c
@@ -88,19 +88,19 @@ rblapack_zgelss(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -110,7 +110,7 @@ rblapack_zgelss(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgelsx.c b/ext/zgelsx.c
index 269c493..3dc0866 100644
--- a/ext/zgelsx.c
+++ b/ext/zgelsx.c
@@ -89,7 +89,7 @@ rblapack_zgelsx(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -99,7 +99,7 @@ rblapack_zgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_zgelsx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zgelsy.c b/ext/zgelsy.c
index 93b6a79..467febe 100644
--- a/ext/zgelsy.c
+++ b/ext/zgelsy.c
@@ -100,13 +100,13 @@ rblapack_zgelsy(int argc, VALUE *argv, VALUE self){
   rcond = NUM2DBL(rblapack_rcond);
   ldb = MAX(m,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -116,7 +116,7 @@ rblapack_zgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = MAX(m, n);
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -132,7 +132,7 @@ rblapack_zgelsy(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zgeql2.c b/ext/zgeql2.c
index 0022d4c..0832f22 100644
--- a/ext/zgeql2.c
+++ b/ext/zgeql2.c
@@ -54,13 +54,13 @@ rblapack_zgeql2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeqlf.c b/ext/zgeqlf.c
index 6108fce..e9201b5 100644
--- a/ext/zgeqlf.c
+++ b/ext/zgeqlf.c
@@ -65,19 +65,19 @@ rblapack_zgeqlf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeqp3.c b/ext/zgeqp3.c
index 476dc62..92e3380 100644
--- a/ext/zgeqp3.c
+++ b/ext/zgeqp3.c
@@ -80,19 +80,19 @@ rblapack_zgeqp3(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_zgeqp3(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zgeqpf.c b/ext/zgeqpf.c
index 9ff399c..a6628ef 100644
--- a/ext/zgeqpf.c
+++ b/ext/zgeqpf.c
@@ -69,13 +69,13 @@ rblapack_zgeqpf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -85,7 +85,7 @@ rblapack_zgeqpf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zgeqr2.c b/ext/zgeqr2.c
index 0c32ffe..df553b6 100644
--- a/ext/zgeqr2.c
+++ b/ext/zgeqr2.c
@@ -54,13 +54,13 @@ rblapack_zgeqr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeqr2p.c b/ext/zgeqr2p.c
index 7027522..460695c 100644
--- a/ext/zgeqr2p.c
+++ b/ext/zgeqr2p.c
@@ -54,13 +54,13 @@ rblapack_zgeqr2p(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeqrf.c b/ext/zgeqrf.c
index 887fa56..bfc1598 100644
--- a/ext/zgeqrf.c
+++ b/ext/zgeqrf.c
@@ -65,19 +65,19 @@ rblapack_zgeqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgeqrfp.c b/ext/zgeqrfp.c
index a163be3..4fbe907 100644
--- a/ext/zgeqrfp.c
+++ b/ext/zgeqrfp.c
@@ -65,19 +65,19 @@ rblapack_zgeqrfp(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgerfs.c b/ext/zgerfs.c
index 7ffd383..ebce13b 100644
--- a/ext/zgerfs.c
+++ b/ext/zgerfs.c
@@ -111,19 +111,19 @@ rblapack_zgerfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgerfsx.c b/ext/zgerfsx.c
index 28b4cdd..a478e23 100644
--- a/ext/zgerfsx.c
+++ b/ext/zgerfsx.c
@@ -159,27 +159,27 @@ rblapack_zgerfsx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -189,7 +189,7 @@ rblapack_zgerfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgerq2.c b/ext/zgerq2.c
index b35dcaf..8150408 100644
--- a/ext/zgerq2.c
+++ b/ext/zgerq2.c
@@ -52,13 +52,13 @@ rblapack_zgerq2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgerqf.c b/ext/zgerqf.c
index 5998497..bee0279 100644
--- a/ext/zgerqf.c
+++ b/ext/zgerqf.c
@@ -65,19 +65,19 @@ rblapack_zgerqf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgesc2.c b/ext/zgesc2.c
index 8fff3fd..e7833eb 100644
--- a/ext/zgesc2.c
+++ b/ext/zgesc2.c
@@ -83,7 +83,7 @@ rblapack_zgesc2(int argc, VALUE *argv, VALUE self){
     rblapack_jpiv = na_change_type(rblapack_jpiv, NA_LINT);
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zgesdd.c b/ext/zgesdd.c
index 943260f..1a78311 100644
--- a/ext/zgesdd.c
+++ b/ext/zgesdd.c
@@ -79,33 +79,33 @@ rblapack_zgesdd(int argc, VALUE *argv, VALUE self){
   ldu = (lsame_(&jobz,"S") || lsame_(&jobz,"A") || (lsame_(&jobz,"O") && m < n)) ? m : 1;
   ucol = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m < n)))) ? m : lsame_(&jobz,"S") ? MIN(m,n) : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = ucol;
     rblapack_u = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgesv.c b/ext/zgesv.c
index a55f271..b10f1ec 100644
--- a/ext/zgesv.c
+++ b/ext/zgesv.c
@@ -65,13 +65,13 @@ rblapack_zgesv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_zgesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgesvd.c b/ext/zgesvd.c
index 16486d4..e6cb586 100644
--- a/ext/zgesvd.c
+++ b/ext/zgesvd.c
@@ -80,33 +80,33 @@ rblapack_zgesvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = lsame_(&jobu,"A") ? m : lsame_(&jobu,"S") ? MIN(m,n) : 0;
     rblapack_u = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvt;
     shape[1] = n;
     rblapack_vt = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vt = NA_PTR_TYPE(rblapack_vt, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = MAX(n, MIN(m,n));
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgesvx.c b/ext/zgesvx.c
index 0a816af..712b1a9 100644
--- a/ext/zgesvx.c
+++ b/ext/zgesvx.c
@@ -168,32 +168,32 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
     af = NA_PTR_TYPE(rblapack_af, doublecomplex*);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*n;
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -237,7 +237,7 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -248,7 +248,7 @@ rblapack_zgesvx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgesvxx.c b/ext/zgesvxx.c
index 841a809..0d75a46 100644
--- a/ext/zgesvxx.c
+++ b/ext/zgesvxx.c
@@ -165,34 +165,34 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -202,7 +202,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -212,7 +212,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -221,7 +221,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_r_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -230,7 +230,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_r = rblapack_r_out__;
   r = r_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_c_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -239,7 +239,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -249,7 +249,7 @@ rblapack_zgesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zgetc2.c b/ext/zgetc2.c
index b99d979..662b6e6 100644
--- a/ext/zgetc2.c
+++ b/ext/zgetc2.c
@@ -51,19 +51,19 @@ rblapack_zgetc2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   jpiv = NA_PTR_TYPE(rblapack_jpiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgetf2.c b/ext/zgetf2.c
index 814f788..22c772b 100644
--- a/ext/zgetf2.c
+++ b/ext/zgetf2.c
@@ -53,13 +53,13 @@ rblapack_zgetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgetrf.c b/ext/zgetrf.c
index c60e10a..88bf391 100644
--- a/ext/zgetrf.c
+++ b/ext/zgetrf.c
@@ -53,13 +53,13 @@ rblapack_zgetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgetri.c b/ext/zgetri.c
index 946c3f5..4fccca4 100644
--- a/ext/zgetri.c
+++ b/ext/zgetri.c
@@ -71,13 +71,13 @@ rblapack_zgetri(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgetrs.c b/ext/zgetrs.c
index e602792..7f40fb2 100644
--- a/ext/zgetrs.c
+++ b/ext/zgetrs.c
@@ -77,7 +77,7 @@ rblapack_zgetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggbak.c b/ext/zggbak.c
index 2f8d926..f745c79 100644
--- a/ext/zggbak.c
+++ b/ext/zggbak.c
@@ -87,7 +87,7 @@ rblapack_zggbak(int argc, VALUE *argv, VALUE self){
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   ihi = NUM2INT(rblapack_ihi);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = m;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggbal.c b/ext/zggbal.c
index 2291f60..965a781 100644
--- a/ext/zggbal.c
+++ b/ext/zggbal.c
@@ -76,19 +76,19 @@ rblapack_zggbal(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -98,7 +98,7 @@ rblapack_zggbal(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgges.c b/ext/zgges.c
index a70df1b..8234f92 100644
--- a/ext/zgges.c
+++ b/ext/zgges.c
@@ -119,39 +119,39 @@ rblapack_zgges(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -161,7 +161,7 @@ rblapack_zgges(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggesx.c b/ext/zggesx.c
index 3d58454..e5cd38a 100644
--- a/ext/zggesx.c
+++ b/ext/zggesx.c
@@ -139,57 +139,57 @@ rblapack_zggesx(int argc, VALUE *argv, VALUE self){
   }
   ldvsr = lsame_(&jobvsr,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsl;
     shape[1] = n;
     rblapack_vsl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsl = NA_PTR_TYPE(rblapack_vsl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvsr;
     shape[1] = n;
     rblapack_vsr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vsr = NA_PTR_TYPE(rblapack_vsr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -199,7 +199,7 @@ rblapack_zggesx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggev.c b/ext/zggev.c
index 7e7d6f9..81ca62c 100644
--- a/ext/zggev.c
+++ b/ext/zggev.c
@@ -97,45 +97,45 @@ rblapack_zggev(int argc, VALUE *argv, VALUE self){
   }
   ldvl = lsame_(&jobvl,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 8*n;
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_zggev(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggevx.c b/ext/zggevx.c
index d3c8605..a14d711 100644
--- a/ext/zggevx.c
+++ b/ext/zggevx.c
@@ -124,63 +124,63 @@ rblapack_zggevx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = n;
     rblapack_vl = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vl = NA_PTR_TYPE(rblapack_vl, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = n;
     rblapack_vr = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_lscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   lscale = NA_PTR_TYPE(rblapack_lscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rscale = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rscale = NA_PTR_TYPE(rblapack_rscale, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rconde = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rconde = NA_PTR_TYPE(rblapack_rconde, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rcondv = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rcondv = NA_PTR_TYPE(rblapack_rcondv, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -190,7 +190,7 @@ rblapack_zggevx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggglm.c b/ext/zggglm.c
index 31b1278..1927248 100644
--- a/ext/zggglm.c
+++ b/ext/zggglm.c
@@ -93,25 +93,25 @@ rblapack_zggglm(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_x = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_y = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_zggglm(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_zggglm(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zgghrd.c b/ext/zgghrd.c
index 2cd0b9a..ddcee95 100644
--- a/ext/zgghrd.c
+++ b/ext/zgghrd.c
@@ -111,7 +111,7 @@ rblapack_zgghrd(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_zgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -131,7 +131,7 @@ rblapack_zgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -141,7 +141,7 @@ rblapack_zgghrd(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgglse.c b/ext/zgglse.c
index f3e98ea..9dfb188 100644
--- a/ext/zgglse.c
+++ b/ext/zgglse.c
@@ -105,19 +105,19 @@ rblapack_zgglse(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_zgglse(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -137,7 +137,7 @@ rblapack_zgglse(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -146,7 +146,7 @@ rblapack_zgglse(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_d_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zggqrf.c b/ext/zggqrf.c
index b825e94..4167030 100644
--- a/ext/zggqrf.c
+++ b/ext/zggqrf.c
@@ -83,25 +83,25 @@ rblapack_zggqrf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,m);
     rblapack_taua = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(n,p);
     rblapack_taub = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = m;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -111,7 +111,7 @@ rblapack_zggqrf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = p;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggrqf.c b/ext/zggrqf.c
index e940ca5..89116ba 100644
--- a/ext/zggrqf.c
+++ b/ext/zggrqf.c
@@ -87,25 +87,25 @@ rblapack_zggrqf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_taua = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taua = NA_PTR_TYPE(rblapack_taua, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(p,n);
     rblapack_taub = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taub = NA_PTR_TYPE(rblapack_taub, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -115,7 +115,7 @@ rblapack_zggrqf(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggsvd.c b/ext/zggsvd.c
index c1a37c9..933dec7 100644
--- a/ext/zggsvd.c
+++ b/ext/zggsvd.c
@@ -103,46 +103,46 @@ rblapack_zggsvd(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -152,7 +152,7 @@ rblapack_zggsvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zggsvp.c b/ext/zggsvp.c
index 71818b8..19c375c 100644
--- a/ext/zggsvp.c
+++ b/ext/zggsvp.c
@@ -107,28 +107,28 @@ rblapack_zggsvp(int argc, VALUE *argv, VALUE self){
   m = lda;
   ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   u = NA_PTR_TYPE(rblapack_u, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -138,7 +138,7 @@ rblapack_zggsvp(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgtrfs.c b/ext/zgtrfs.c
index 6dc720a..3c9a6f8 100644
--- a/ext/zgtrfs.c
+++ b/ext/zgtrfs.c
@@ -167,19 +167,19 @@ rblapack_zgtrfs(int argc, VALUE *argv, VALUE self){
     rblapack_duf = na_change_type(rblapack_duf, NA_DCOMPLEX);
   duf = NA_PTR_TYPE(rblapack_duf, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgtsv.c b/ext/zgtsv.c
index 2a2fcb1..31a341c 100644
--- a/ext/zgtsv.c
+++ b/ext/zgtsv.c
@@ -89,7 +89,7 @@ rblapack_zgtsv(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_DCOMPLEX);
   du = NA_PTR_TYPE(rblapack_du, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_zgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_zgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_zgtsv(int argc, VALUE *argv, VALUE self){
   rblapack_du = rblapack_du_out__;
   du = du_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgtsvx.c b/ext/zgtsvx.c
index 0c77648..4aec993 100644
--- a/ext/zgtsvx.c
+++ b/ext/zgtsvx.c
@@ -171,26 +171,26 @@ rblapack_zgtsvx(int argc, VALUE *argv, VALUE self){
     rblapack_dlf = na_change_type(rblapack_dlf, NA_DCOMPLEX);
   dlf = NA_PTR_TYPE(rblapack_dlf, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dlf_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -199,7 +199,7 @@ rblapack_zgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_dlf = rblapack_dlf_out__;
   dlf = dlf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -208,7 +208,7 @@ rblapack_zgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_duf_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -217,7 +217,7 @@ rblapack_zgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_duf = rblapack_duf_out__;
   duf = duf_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -226,7 +226,7 @@ rblapack_zgtsvx(int argc, VALUE *argv, VALUE self){
   rblapack_du2 = rblapack_du2_out__;
   du2 = du2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zgttrf.c b/ext/zgttrf.c
index 66fd80d..0d02025 100644
--- a/ext/zgttrf.c
+++ b/ext/zgttrf.c
@@ -77,19 +77,19 @@ rblapack_zgttrf(int argc, VALUE *argv, VALUE self){
     rblapack_du = na_change_type(rblapack_du, NA_DCOMPLEX);
   du = NA_PTR_TYPE(rblapack_du, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-2;
     rblapack_du2 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   du2 = NA_PTR_TYPE(rblapack_du2, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_dl_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_zgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_dl = rblapack_dl_out__;
   dl = dl_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -107,7 +107,7 @@ rblapack_zgttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_du_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zgttrs.c b/ext/zgttrs.c
index b05f622..a531fbf 100644
--- a/ext/zgttrs.c
+++ b/ext/zgttrs.c
@@ -111,7 +111,7 @@ rblapack_zgttrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zgtts2.c b/ext/zgtts2.c
index b164dbc..3ac37e5 100644
--- a/ext/zgtts2.c
+++ b/ext/zgtts2.c
@@ -109,7 +109,7 @@ rblapack_zgtts2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbev.c b/ext/zhbev.c
index 15080a0..767bb4f 100644
--- a/ext/zhbev.c
+++ b/ext/zhbev.c
@@ -67,20 +67,20 @@ rblapack_zhbev(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbevd.c b/ext/zhbevd.c
index 5760df7..474652e 100644
--- a/ext/zhbevd.c
+++ b/ext/zhbevd.c
@@ -101,38 +101,38 @@ rblapack_zhbevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbevx.c b/ext/zhbevx.c
index cf28f7d..2f06a22 100644
--- a/ext/zhbevx.c
+++ b/ext/zhbevx.c
@@ -101,33 +101,33 @@ rblapack_zhbevx(int argc, VALUE *argv, VALUE self){
   il = NUM2INT(rblapack_il);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbgst.c b/ext/zhbgst.c
index 41bb1fd..c6f9fa3 100644
--- a/ext/zhbgst.c
+++ b/ext/zhbgst.c
@@ -83,14 +83,14 @@ rblapack_zhbgst(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldx = lsame_(&vect,"V") ? MAX(1,n) : 1;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbgv.c b/ext/zhbgv.c
index 704e93e..faef763 100644
--- a/ext/zhbgv.c
+++ b/ext/zhbgv.c
@@ -87,20 +87,20 @@ rblapack_zhbgv(int argc, VALUE *argv, VALUE self){
   kb = NUM2INT(rblapack_kb);
   ldz = lsame_(&jobz,"V") ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -110,7 +110,7 @@ rblapack_zhbgv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbgvd.c b/ext/zhbgvd.c
index d565ca8..37a4964 100644
--- a/ext/zhbgvd.c
+++ b/ext/zhbgvd.c
@@ -121,38 +121,38 @@ rblapack_zhbgvd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -162,7 +162,7 @@ rblapack_zhbgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbgvx.c b/ext/zhbgvx.c
index e3a91b6..df896fe 100644
--- a/ext/zhbgvx.c
+++ b/ext/zhbgvx.c
@@ -120,33 +120,33 @@ rblapack_zhbgvx(int argc, VALUE *argv, VALUE self){
   vl = NUM2DBL(rblapack_vl);
   ldq = 1 ? jobz = 'n' : MAX(1,n) ? jobz = 'v' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_zhbgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbb;
     shape[1] = n;
     rblapack_bb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhbtrd.c b/ext/zhbtrd.c
index 225c59b..d1a73f3 100644
--- a/ext/zhbtrd.c
+++ b/ext/zhbtrd.c
@@ -80,19 +80,19 @@ rblapack_zhbtrd(int argc, VALUE *argv, VALUE self){
     rblapack_ab = na_change_type(rblapack_ab, NA_DCOMPLEX);
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -102,7 +102,7 @@ rblapack_zhbtrd(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zheequb.c b/ext/zheequb.c
index 334af8d..62b14d6 100644
--- a/ext/zheequb.c
+++ b/ext/zheequb.c
@@ -56,7 +56,7 @@ rblapack_zheequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zheev.c b/ext/zheev.c
index 2420b2e..a2b1c28 100644
--- a/ext/zheev.c
+++ b/ext/zheev.c
@@ -70,19 +70,19 @@ rblapack_zheev(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zheevd.c b/ext/zheevd.c
index 632089e..edf0dc6 100644
--- a/ext/zheevd.c
+++ b/ext/zheevd.c
@@ -93,31 +93,31 @@ rblapack_zheevd(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zheevr.c b/ext/zheevr.c
index 958279d..6160957 100644
--- a/ext/zheevr.c
+++ b/ext/zheevr.c
@@ -126,44 +126,44 @@ rblapack_zheevr(int argc, VALUE *argv, VALUE self){
   }
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zheevx.c b/ext/zheevx.c
index 1570c52..420960f 100644
--- a/ext/zheevx.c
+++ b/ext/zheevx.c
@@ -104,32 +104,32 @@ rblapack_zheevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhegs2.c b/ext/zhegs2.c
index 4777398..4b28b6d 100644
--- a/ext/zhegs2.c
+++ b/ext/zhegs2.c
@@ -69,7 +69,7 @@ rblapack_zhegs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhegst.c b/ext/zhegst.c
index fccf47d..f812169 100644
--- a/ext/zhegst.c
+++ b/ext/zhegst.c
@@ -69,7 +69,7 @@ rblapack_zhegst(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhegv.c b/ext/zhegv.c
index e9c111b..e32841b 100644
--- a/ext/zhegv.c
+++ b/ext/zhegv.c
@@ -90,19 +90,19 @@ rblapack_zhegv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -112,7 +112,7 @@ rblapack_zhegv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhegvd.c b/ext/zhegvd.c
index 6347ebe..7eb6097 100644
--- a/ext/zhegvd.c
+++ b/ext/zhegvd.c
@@ -113,31 +113,31 @@ rblapack_zhegvd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_zhegvd(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhegvx.c b/ext/zhegvx.c
index 389c32d..8a1d654 100644
--- a/ext/zhegvx.c
+++ b/ext/zhegvx.c
@@ -124,32 +124,32 @@ rblapack_zhegvx(int argc, VALUE *argv, VALUE self){
   vu = NUM2DBL(rblapack_vu);
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -159,7 +159,7 @@ rblapack_zhegvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zherfs.c b/ext/zherfs.c
index ed39b50..3e26ff9 100644
--- a/ext/zherfs.c
+++ b/ext/zherfs.c
@@ -111,19 +111,19 @@ rblapack_zherfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zherfsx.c b/ext/zherfsx.c
index 27efc5e..28c5508 100644
--- a/ext/zherfsx.c
+++ b/ext/zherfsx.c
@@ -149,27 +149,27 @@ rblapack_zherfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_zherfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_zherfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zhesv.c b/ext/zhesv.c
index baaa013..fbc425b 100644
--- a/ext/zhesv.c
+++ b/ext/zhesv.c
@@ -75,19 +75,19 @@ rblapack_zhesv(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   lwork = NUM2INT(rblapack_lwork);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -97,7 +97,7 @@ rblapack_zhesv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhesvx.c b/ext/zhesvx.c
index 9ee112f..dbc6913 100644
--- a/ext/zhesvx.c
+++ b/ext/zhesvx.c
@@ -120,32 +120,32 @@ rblapack_zhesvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_zhesvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zhesvxx.c b/ext/zhesvxx.c
index 6c822cf..7bc193b 100644
--- a/ext/zhesvxx.c
+++ b/ext/zhesvxx.c
@@ -151,34 +151,34 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_zhesvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zhetd2.c b/ext/zhetd2.c
index 7cf1949..2a14490 100644
--- a/ext/zhetd2.c
+++ b/ext/zhetd2.c
@@ -57,25 +57,25 @@ rblapack_zhetd2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetf2.c b/ext/zhetf2.c
index fca06ae..232f86f 100644
--- a/ext/zhetf2.c
+++ b/ext/zhetf2.c
@@ -53,13 +53,13 @@ rblapack_zhetf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetrd.c b/ext/zhetrd.c
index bdf2453..0fe678e 100644
--- a/ext/zhetrd.c
+++ b/ext/zhetrd.c
@@ -63,31 +63,31 @@ rblapack_zhetrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetrf.c b/ext/zhetrf.c
index 7aadf4d..31566ca 100644
--- a/ext/zhetrf.c
+++ b/ext/zhetrf.c
@@ -59,19 +59,19 @@ rblapack_zhetrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetri.c b/ext/zhetri.c
index 2291ee9..4aff1b6 100644
--- a/ext/zhetri.c
+++ b/ext/zhetri.c
@@ -64,7 +64,7 @@ rblapack_zhetri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetrs.c b/ext/zhetrs.c
index 89fe385..c2bae29 100644
--- a/ext/zhetrs.c
+++ b/ext/zhetrs.c
@@ -77,7 +77,7 @@ rblapack_zhetrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhetrs2.c b/ext/zhetrs2.c
index b19354f..b2fef35 100644
--- a/ext/zhetrs2.c
+++ b/ext/zhetrs2.c
@@ -78,7 +78,7 @@ rblapack_zhetrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhfrk.c b/ext/zhfrk.c
index c9ebbd7..7efc279 100644
--- a/ext/zhfrk.c
+++ b/ext/zhfrk.c
@@ -85,7 +85,7 @@ rblapack_zhfrk(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldc;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhgeqz.c b/ext/zhgeqz.c
index 8658fa3..cd0c198 100644
--- a/ext/zhgeqz.c
+++ b/ext/zhgeqz.c
@@ -132,25 +132,25 @@ rblapack_zhgeqz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_zhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -170,7 +170,7 @@ rblapack_zhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -180,7 +180,7 @@ rblapack_zhgeqz(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhpev.c b/ext/zhpev.c
index cb65485..38d29d6 100644
--- a/ext/zhpev.c
+++ b/ext/zhpev.c
@@ -63,20 +63,20 @@ rblapack_zhpev(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpevd.c b/ext/zhpevd.c
index db1541f..a6c6b1b 100644
--- a/ext/zhpevd.c
+++ b/ext/zhpevd.c
@@ -97,38 +97,38 @@ rblapack_zhpevd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpevx.c b/ext/zhpevx.c
index c830a6c..215201d 100644
--- a/ext/zhpevx.c
+++ b/ext/zhpevx.c
@@ -93,26 +93,26 @@ rblapack_zhpevx(int argc, VALUE *argv, VALUE self){
   m = lsame_(&range,"A") ? n : lsame_(&range,"I") ? iu-il+1 : 0;
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpgst.c b/ext/zhpgst.c
index 836e684..e3d44da 100644
--- a/ext/zhpgst.c
+++ b/ext/zhpgst.c
@@ -69,7 +69,7 @@ rblapack_zhpgst(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpgv.c b/ext/zhpgv.c
index 7462ecb..01259ed 100644
--- a/ext/zhpgv.c
+++ b/ext/zhpgv.c
@@ -81,20 +81,20 @@ rblapack_zhpgv(int argc, VALUE *argv, VALUE self){
   bp = NA_PTR_TYPE(rblapack_bp, doublecomplex*);
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -103,7 +103,7 @@ rblapack_zhpgv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpgvd.c b/ext/zhpgvd.c
index 754e240..23574dc 100644
--- a/ext/zhpgvd.c
+++ b/ext/zhpgvd.c
@@ -113,26 +113,26 @@ rblapack_zhpgvd(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_zhpgvd(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhpgvx.c b/ext/zhpgvx.c
index 4b1ed43..d4a1218 100644
--- a/ext/zhpgvx.c
+++ b/ext/zhpgvx.c
@@ -110,26 +110,26 @@ rblapack_zhpgvx(int argc, VALUE *argv, VALUE self){
   ldz = lsame_(&jobz,"V") ? MAX(1,n) : 1;
   vu = NUM2DBL(rblapack_vu);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&jobz,"N") ? 0 : ldz;
     shape[1] = lsame_(&jobz,"N") ? 0 : n;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifail = NA_PTR_TYPE(rblapack_ifail, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -138,7 +138,7 @@ rblapack_zhpgvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_bp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhprfs.c b/ext/zhprfs.c
index bb3b7d6..c7bf221 100644
--- a/ext/zhprfs.c
+++ b/ext/zhprfs.c
@@ -107,19 +107,19 @@ rblapack_zhprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhpsv.c b/ext/zhpsv.c
index 4f04ee0..2b77b8e 100644
--- a/ext/zhpsv.c
+++ b/ext/zhpsv.c
@@ -69,13 +69,13 @@ rblapack_zhpsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_zhpsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhpsvx.c b/ext/zhpsvx.c
index 5ed7a46..a9d2e5b 100644
--- a/ext/zhpsvx.c
+++ b/ext/zhpsvx.c
@@ -105,26 +105,26 @@ rblapack_zhpsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_zhpsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zhptrd.c b/ext/zhptrd.c
index 5edffcd..c0d0270 100644
--- a/ext/zhptrd.c
+++ b/ext/zhptrd.c
@@ -57,25 +57,25 @@ rblapack_zhptrd(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhptrf.c b/ext/zhptrf.c
index 0a12698..5fc0b01 100644
--- a/ext/zhptrf.c
+++ b/ext/zhptrf.c
@@ -53,13 +53,13 @@ rblapack_zhptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhptri.c b/ext/zhptri.c
index e93f255..f5e1c5f 100644
--- a/ext/zhptri.c
+++ b/ext/zhptri.c
@@ -62,7 +62,7 @@ rblapack_zhptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zhptrs.c b/ext/zhptrs.c
index 01a5734..b64b2df 100644
--- a/ext/zhptrs.c
+++ b/ext/zhptrs.c
@@ -75,7 +75,7 @@ rblapack_zhptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhsein.c b/ext/zhsein.c
index a694c8a..e9acbf2 100644
--- a/ext/zhsein.c
+++ b/ext/zhsein.c
@@ -123,19 +123,19 @@ rblapack_zhsein(int argc, VALUE *argv, VALUE self){
     rblapack_vr = na_change_type(rblapack_vr, NA_DCOMPLEX);
   vr = NA_PTR_TYPE(rblapack_vr, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifaill = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifaill = NA_PTR_TYPE(rblapack_ifaill, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_ifailr = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ifailr = NA_PTR_TYPE(rblapack_ifailr, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -144,7 +144,7 @@ rblapack_zhsein(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -154,7 +154,7 @@ rblapack_zhsein(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zhseqr.c b/ext/zhseqr.c
index 52bc22f..ee05903 100644
--- a/ext/zhseqr.c
+++ b/ext/zhseqr.c
@@ -97,19 +97,19 @@ rblapack_zhseqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -119,7 +119,7 @@ rblapack_zhseqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&compz,"N") ? 0 : ldz;
     shape[1] = lsame_(&compz,"N") ? 0 : n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zla_gbamv.c b/ext/zla_gbamv.c
index a46bdcb..a9d2706 100644
--- a/ext/zla_gbamv.c
+++ b/ext/zla_gbamv.c
@@ -103,7 +103,7 @@ rblapack_zla_gbamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zla_gbrfsx_extended.c b/ext/zla_gbrfsx_extended.c
index 0a63e00..3f91075 100644
--- a/ext/zla_gbrfsx_extended.c
+++ b/ext/zla_gbrfsx_extended.c
@@ -243,13 +243,13 @@ rblapack_zla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_dy = na_change_type(rblapack_dy, NA_DCOMPLEX);
   dy = NA_PTR_TYPE(rblapack_dy, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -259,7 +259,7 @@ rblapack_zla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -269,7 +269,7 @@ rblapack_zla_gbrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/zla_geamv.c b/ext/zla_geamv.c
index d7f6ab8..23f7f29 100644
--- a/ext/zla_geamv.c
+++ b/ext/zla_geamv.c
@@ -95,7 +95,7 @@ rblapack_zla_geamv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DFLOAT);
   x = NA_PTR_TYPE(rblapack_x, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = trans == ilatrans_("N") ? 1 + ( m - 1 )*abs( incy ) : 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zla_gerfsx_extended.c b/ext/zla_gerfsx_extended.c
index 00c1f36..6b2d970 100644
--- a/ext/zla_gerfsx_extended.c
+++ b/ext/zla_gerfsx_extended.c
@@ -229,13 +229,13 @@ rblapack_zla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_errs_c = na_change_type(rblapack_errs_c, NA_DFLOAT);
   errs_c = NA_PTR_TYPE(rblapack_errs_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_zla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_n_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -255,7 +255,7 @@ rblapack_zla_gerfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_errs_n = rblapack_errs_n_out__;
   errs_n = errs_n_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_norms;
     rblapack_errs_c_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/zla_heamv.c b/ext/zla_heamv.c
index b756ad4..311de7a 100644
--- a/ext/zla_heamv.c
+++ b/ext/zla_heamv.c
@@ -92,7 +92,7 @@ rblapack_zla_heamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zla_herfsx_extended.c b/ext/zla_herfsx_extended.c
index b7d83f5..1b27ee0 100644
--- a/ext/zla_herfsx_extended.c
+++ b/ext/zla_herfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_zla_herfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_DCOMPLEX);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_zla_herfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_zla_herfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/zla_lin_berr.c b/ext/zla_lin_berr.c
index 4b1145d..92db06d 100644
--- a/ext/zla_lin_berr.c
+++ b/ext/zla_lin_berr.c
@@ -63,7 +63,7 @@ rblapack_zla_lin_berr(int argc, VALUE *argv, VALUE self){
     rblapack_res = na_change_type(rblapack_res, NA_DFLOAT);
   res = NA_PTR_TYPE(rblapack_res, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zla_porfsx_extended.c b/ext/zla_porfsx_extended.c
index cd25484..f428771 100644
--- a/ext/zla_porfsx_extended.c
+++ b/ext/zla_porfsx_extended.c
@@ -219,13 +219,13 @@ rblapack_zla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   rcond = NUM2DBL(rblapack_rcond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -235,7 +235,7 @@ rblapack_zla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -245,7 +245,7 @@ rblapack_zla_porfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/zla_syamv.c b/ext/zla_syamv.c
index bd41457..69939fa 100644
--- a/ext/zla_syamv.c
+++ b/ext/zla_syamv.c
@@ -92,7 +92,7 @@ rblapack_zla_syamv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DFLOAT);
   y = NA_PTR_TYPE(rblapack_y, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zla_syrfsx_extended.c b/ext/zla_syrfsx_extended.c
index a4064c7..5714fd5 100644
--- a/ext/zla_syrfsx_extended.c
+++ b/ext/zla_syrfsx_extended.c
@@ -231,13 +231,13 @@ rblapack_zla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
     rblapack_y_tail = na_change_type(rblapack_y_tail, NA_DCOMPLEX);
   y_tail = NA_PTR_TYPE(rblapack_y_tail, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr_out = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr_out = NA_PTR_TYPE(rblapack_berr_out, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = nrhs;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -247,7 +247,7 @@ rblapack_zla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
@@ -257,7 +257,7 @@ rblapack_zla_syrfsx_extended(int argc, VALUE *argv, VALUE self){
   rblapack_err_bnds_norm = rblapack_err_bnds_norm_out__;
   err_bnds_norm = err_bnds_norm_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
diff --git a/ext/zla_wwaddw.c b/ext/zla_wwaddw.c
index 5c1fe88..88acca9 100644
--- a/ext/zla_wwaddw.c
+++ b/ext/zla_wwaddw.c
@@ -69,7 +69,7 @@ rblapack_zla_wwaddw(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_zla_wwaddw(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlabrd.c b/ext/zlabrd.c
index 1425db6..719792d 100644
--- a/ext/zlabrd.c
+++ b/ext/zlabrd.c
@@ -69,45 +69,45 @@ rblapack_zlabrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldx = MAX(1,m);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_d = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   d = NA_PTR_TYPE(rblapack_d, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tauq = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tauq = NA_PTR_TYPE(rblapack_tauq, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_taup = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taup = NA_PTR_TYPE(rblapack_taup, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = MAX(1,nb);
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlacgv.c b/ext/zlacgv.c
index 42911f2..79e5c87 100644
--- a/ext/zlacgv.c
+++ b/ext/zlacgv.c
@@ -51,7 +51,7 @@ rblapack_zlacgv(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlacn2.c b/ext/zlacn2.c
index 402b1cb..a19f9d0 100644
--- a/ext/zlacn2.c
+++ b/ext/zlacn2.c
@@ -66,7 +66,7 @@ rblapack_zlacn2(int argc, VALUE *argv, VALUE self){
     rblapack_isave = na_change_type(rblapack_isave, NA_LINT);
   isave = NA_PTR_TYPE(rblapack_isave, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -75,7 +75,7 @@ rblapack_zlacn2(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 3;
     rblapack_isave_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zlacon.c b/ext/zlacon.c
index b8d2ec8..869c3e3 100644
--- a/ext/zlacon.c
+++ b/ext/zlacon.c
@@ -52,7 +52,7 @@ rblapack_zlacon(int argc, VALUE *argv, VALUE self){
   kase = NUM2INT(rblapack_kase);
   est = NUM2DBL(rblapack_est);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlacp2.c b/ext/zlacp2.c
index 4b4d3e1..6427f1c 100644
--- a/ext/zlacp2.c
+++ b/ext/zlacp2.c
@@ -55,7 +55,7 @@ rblapack_zlacp2(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlacpy.c b/ext/zlacpy.c
index 6026bd5..7705ea9 100644
--- a/ext/zlacpy.c
+++ b/ext/zlacpy.c
@@ -55,7 +55,7 @@ rblapack_zlacpy(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   ldb = MAX(1,m);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlacrm.c b/ext/zlacrm.c
index 2f5a816..9f56fda 100644
--- a/ext/zlacrm.c
+++ b/ext/zlacrm.c
@@ -66,7 +66,7 @@ rblapack_zlacrm(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   ldc = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlacrt.c b/ext/zlacrt.c
index 00b5115..e71e4f4 100644
--- a/ext/zlacrt.c
+++ b/ext/zlacrt.c
@@ -75,7 +75,7 @@ rblapack_zlacrt(int argc, VALUE *argv, VALUE self){
   s.i = NUM2DBL(rb_funcall(rblapack_s, rb_intern("imag"), 0));
   incy = NUM2INT(rblapack_incy);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cx_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_zlacrt(int argc, VALUE *argv, VALUE self){
   rblapack_cx = rblapack_cx_out__;
   cx = cx_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cy_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlaed0.c b/ext/zlaed0.c
index b904885..a7ded41 100644
--- a/ext/zlaed0.c
+++ b/ext/zlaed0.c
@@ -84,7 +84,7 @@ rblapack_zlaed0(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -93,7 +93,7 @@ rblapack_zlaed0(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -102,7 +102,7 @@ rblapack_zlaed0(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaed7.c b/ext/zlaed7.c
index 09b1035..9bfe8b6 100644
--- a/ext/zlaed7.c
+++ b/ext/zlaed7.c
@@ -182,13 +182,13 @@ rblapack_zlaed7(int argc, VALUE *argv, VALUE self){
     rblapack_perm = na_change_type(rblapack_perm, NA_LINT);
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_indxq = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   indxq = NA_PTR_TYPE(rblapack_indxq, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -197,7 +197,7 @@ rblapack_zlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -207,7 +207,7 @@ rblapack_zlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = pow(n,2)+1;
     rblapack_qstore_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_zlaed7(int argc, VALUE *argv, VALUE self){
   rblapack_qstore = rblapack_qstore_out__;
   qstore = qstore_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n+2;
     rblapack_qptr_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zlaed8.c b/ext/zlaed8.c
index 72dd8d1..fcf9044 100644
--- a/ext/zlaed8.c
+++ b/ext/zlaed8.c
@@ -117,46 +117,46 @@ rblapack_zlaed8(int argc, VALUE *argv, VALUE self){
   rho = NUM2DBL(rblapack_rho);
   ldq2 = MAX( 1, n );
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_dlamda = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dlamda = NA_PTR_TYPE(rblapack_dlamda, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq2;
     shape[1] = n;
     rblapack_q2 = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   q2 = NA_PTR_TYPE(rblapack_q2, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_perm = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   perm = NA_PTR_TYPE(rblapack_perm, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givcol = na_make_object(NA_LINT, 2, shape, cNArray);
   }
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = 2;
     shape[1] = n;
     rblapack_givnum = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -166,7 +166,7 @@ rblapack_zlaed8(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlaein.c b/ext/zlaein.c
index 72b0dbb..9a23ce9 100644
--- a/ext/zlaein.c
+++ b/ext/zlaein.c
@@ -84,7 +84,7 @@ rblapack_zlaein(int argc, VALUE *argv, VALUE self){
   w.i = NUM2DBL(rb_funcall(rblapack_w, rb_intern("imag"), 0));
   ldb = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlag2c.c b/ext/zlag2c.c
index 3720738..3e2a780 100644
--- a/ext/zlag2c.c
+++ b/ext/zlag2c.c
@@ -53,7 +53,7 @@ rblapack_zlag2c(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldsa;
     shape[1] = n;
     rblapack_sa = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlagtm.c b/ext/zlagtm.c
index 010e1b9..386ce49 100644
--- a/ext/zlagtm.c
+++ b/ext/zlagtm.c
@@ -107,7 +107,7 @@ rblapack_zlagtm(int argc, VALUE *argv, VALUE self){
   dl = NA_PTR_TYPE(rblapack_dl, doublecomplex*);
   beta = NUM2DBL(rblapack_beta);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlahef.c b/ext/zlahef.c
index 5b1cc3f..043d55b 100644
--- a/ext/zlahef.c
+++ b/ext/zlahef.c
@@ -62,13 +62,13 @@ rblapack_zlahef(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlahqr.c b/ext/zlahqr.c
index 4b773cf..d0ebdc0 100644
--- a/ext/zlahqr.c
+++ b/ext/zlahqr.c
@@ -93,13 +93,13 @@ rblapack_zlahqr(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -109,7 +109,7 @@ rblapack_zlahqr(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? n : 0;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlahr2.c b/ext/zlahr2.c
index eed5fd0..9f1e7d0 100644
--- a/ext/zlahr2.c
+++ b/ext/zlahr2.c
@@ -67,27 +67,27 @@ rblapack_zlahr2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlahrd.c b/ext/zlahrd.c
index b444a36..d1e2d01 100644
--- a/ext/zlahrd.c
+++ b/ext/zlahrd.c
@@ -67,27 +67,27 @@ rblapack_zlahrd(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,nb);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = MAX(1,nb);
     rblapack_t = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldy;
     shape[1] = MAX(1,nb);
     rblapack_y = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n-k+1;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlals0.c b/ext/zlals0.c
index 37ea534..7987546 100644
--- a/ext/zlals0.c
+++ b/ext/zlals0.c
@@ -171,7 +171,7 @@ rblapack_zlals0(int argc, VALUE *argv, VALUE self){
   givcol = NA_PTR_TYPE(rblapack_givcol, integer*);
   ldbx = n;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlalsa.c b/ext/zlalsa.c
index b16f71f..8049690 100644
--- a/ext/zlalsa.c
+++ b/ext/zlalsa.c
@@ -233,14 +233,14 @@ rblapack_zlalsa(int argc, VALUE *argv, VALUE self){
     rblapack_givnum = na_change_type(rblapack_givnum, NA_DFLOAT);
   givnum = NA_PTR_TYPE(rblapack_givnum, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldbx;
     shape[1] = nrhs;
     rblapack_bx = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   bx = NA_PTR_TYPE(rblapack_bx, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlalsd.c b/ext/zlalsd.c
index 39ff754..9a5e3ae 100644
--- a/ext/zlalsd.c
+++ b/ext/zlalsd.c
@@ -94,7 +94,7 @@ rblapack_zlalsd(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   nlvl = ( (int)( log(((double)n)/(smlsiz+1))/log(2.0) ) ) + 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -103,7 +103,7 @@ rblapack_zlalsd(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -112,7 +112,7 @@ rblapack_zlalsd(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlapll.c b/ext/zlapll.c
index 0846ef5..7dbf5f2 100644
--- a/ext/zlapll.c
+++ b/ext/zlapll.c
@@ -71,7 +71,7 @@ rblapack_zlapll(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -80,7 +80,7 @@ rblapack_zlapll(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlapmr.c b/ext/zlapmr.c
index 3c48bca..190b98c 100644
--- a/ext/zlapmr.c
+++ b/ext/zlapmr.c
@@ -63,7 +63,7 @@ rblapack_zlapmr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -73,7 +73,7 @@ rblapack_zlapmr(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zlapmt.c b/ext/zlapmt.c
index 8f66d32..9b01956 100644
--- a/ext/zlapmt.c
+++ b/ext/zlapmt.c
@@ -67,7 +67,7 @@ rblapack_zlapmt(int argc, VALUE *argv, VALUE self){
     rblapack_k = na_change_type(rblapack_k, NA_LINT);
   k = NA_PTR_TYPE(rblapack_k, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_zlapmt(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_k_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zlaqgb.c b/ext/zlaqgb.c
index 881ea86..b935e6e 100644
--- a/ext/zlaqgb.c
+++ b/ext/zlaqgb.c
@@ -91,7 +91,7 @@ rblapack_zlaqgb(int argc, VALUE *argv, VALUE self){
   r = NA_PTR_TYPE(rblapack_r, doublereal*);
   amax = NUM2DBL(rblapack_amax);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqge.c b/ext/zlaqge.c
index 4a53108..afee139 100644
--- a/ext/zlaqge.c
+++ b/ext/zlaqge.c
@@ -83,7 +83,7 @@ rblapack_zlaqge(int argc, VALUE *argv, VALUE self){
   amax = NUM2DBL(rblapack_amax);
   rowcnd = NUM2DBL(rblapack_rowcnd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqhb.c b/ext/zlaqhb.c
index 04651f6..19acd19 100644
--- a/ext/zlaqhb.c
+++ b/ext/zlaqhb.c
@@ -65,13 +65,13 @@ rblapack_zlaqhb(int argc, VALUE *argv, VALUE self){
   kd = NUM2INT(rblapack_kd);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqhe.c b/ext/zlaqhe.c
index 9094cac..d93152a 100644
--- a/ext/zlaqhe.c
+++ b/ext/zlaqhe.c
@@ -71,7 +71,7 @@ rblapack_zlaqhe(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqhp.c b/ext/zlaqhp.c
index b3bbcd6..03f07e6 100644
--- a/ext/zlaqhp.c
+++ b/ext/zlaqhp.c
@@ -69,7 +69,7 @@ rblapack_zlaqhp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlaqp2.c b/ext/zlaqp2.c
index db8d342..3c5c0be 100644
--- a/ext/zlaqp2.c
+++ b/ext/zlaqp2.c
@@ -98,13 +98,13 @@ rblapack_zlaqp2(int argc, VALUE *argv, VALUE self){
     rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
   jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(m,n);
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -114,7 +114,7 @@ rblapack_zlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -123,7 +123,7 @@ rblapack_zlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -132,7 +132,7 @@ rblapack_zlaqp2(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlaqps.c b/ext/zlaqps.c
index 1098957..ebfa796 100644
--- a/ext/zlaqps.c
+++ b/ext/zlaqps.c
@@ -130,13 +130,13 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   f = NA_PTR_TYPE(rblapack_f, doublecomplex*);
   kb = nb;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = kb;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -155,7 +155,7 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_jpvt = rblapack_jpvt_out__;
   jpvt = jpvt_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn1_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -164,7 +164,7 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn1 = rblapack_vn1_out__;
   vn1 = vn1_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_vn2_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -173,7 +173,7 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_vn2 = rblapack_vn2_out__;
   vn2 = vn2_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nb;
     rblapack_auxv_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -182,7 +182,7 @@ rblapack_zlaqps(int argc, VALUE *argv, VALUE self){
   rblapack_auxv = rblapack_auxv_out__;
   auxv = auxv_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = nb;
     rblapack_f_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqr0.c b/ext/zlaqr0.c
index 3b7fe54..4d17d73 100644
--- a/ext/zlaqr0.c
+++ b/ext/zlaqr0.c
@@ -105,19 +105,19 @@ rblapack_zlaqr0(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -127,7 +127,7 @@ rblapack_zlaqr0(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? ihi : 0;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqr1.c b/ext/zlaqr1.c
index 1a901aa..d7f4a2c 100644
--- a/ext/zlaqr1.c
+++ b/ext/zlaqr1.c
@@ -55,7 +55,7 @@ rblapack_zlaqr1(int argc, VALUE *argv, VALUE self){
   s1.r = NUM2DBL(rb_funcall(rblapack_s1, rb_intern("real"), 0));
   s1.i = NUM2DBL(rb_funcall(rblapack_s1, rb_intern("imag"), 0));
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_v = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlaqr2.c b/ext/zlaqr2.c
index 85644aa..a4c3593 100644
--- a/ext/zlaqr2.c
+++ b/ext/zlaqr2.c
@@ -123,13 +123,13 @@ rblapack_zlaqr2(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sh = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   sh = NA_PTR_TYPE(rblapack_sh, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -139,7 +139,7 @@ rblapack_zlaqr2(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqr3.c b/ext/zlaqr3.c
index f71bd11..a29d717 100644
--- a/ext/zlaqr3.c
+++ b/ext/zlaqr3.c
@@ -123,13 +123,13 @@ rblapack_zlaqr3(int argc, VALUE *argv, VALUE self){
   }
   ihiz = NUM2INT(rblapack_ihiz);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,kbot);
     rblapack_sh = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   sh = NA_PTR_TYPE(rblapack_sh, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -139,7 +139,7 @@ rblapack_zlaqr3(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqr4.c b/ext/zlaqr4.c
index 844a8b4..0d7ab3e 100644
--- a/ext/zlaqr4.c
+++ b/ext/zlaqr4.c
@@ -99,19 +99,19 @@ rblapack_zlaqr4(int argc, VALUE *argv, VALUE self){
     rblapack_z = na_change_type(rblapack_z, NA_DCOMPLEX);
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -121,7 +121,7 @@ rblapack_zlaqr4(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = ihi;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqr5.c b/ext/zlaqr5.c
index 91fd949..e9eec19 100644
--- a/ext/zlaqr5.c
+++ b/ext/zlaqr5.c
@@ -127,7 +127,7 @@ rblapack_zlaqr5(int argc, VALUE *argv, VALUE self){
   iloz = NUM2INT(rblapack_iloz);
   ldwv = nv;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nshfts;
     rblapack_s_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -136,7 +136,7 @@ rblapack_zlaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldh;
     shape[1] = n;
     rblapack_h_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_zlaqr5(int argc, VALUE *argv, VALUE self){
   rblapack_h = rblapack_h_out__;
   h = h_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantz ? ldz : 0;
     shape[1] = wantz ? ihiz : 0;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqsb.c b/ext/zlaqsb.c
index a833687..519cf50 100644
--- a/ext/zlaqsb.c
+++ b/ext/zlaqsb.c
@@ -75,7 +75,7 @@ rblapack_zlaqsb(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DFLOAT);
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaqsp.c b/ext/zlaqsp.c
index 947473c..60089c3 100644
--- a/ext/zlaqsp.c
+++ b/ext/zlaqsp.c
@@ -69,7 +69,7 @@ rblapack_zlaqsp(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlaqsy.c b/ext/zlaqsy.c
index 78b294d..49f3e1f 100644
--- a/ext/zlaqsy.c
+++ b/ext/zlaqsy.c
@@ -71,7 +71,7 @@ rblapack_zlaqsy(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   scond = NUM2DBL(rblapack_scond);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlar1v.c b/ext/zlar1v.c
index fa073e4..46d02fc 100644
--- a/ext/zlar1v.c
+++ b/ext/zlar1v.c
@@ -134,13 +134,13 @@ rblapack_zlar1v(int argc, VALUE *argv, VALUE self){
     rblapack_lld = na_change_type(rblapack_lld, NA_DFLOAT);
   lld = NA_PTR_TYPE(rblapack_lld, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlar2v.c b/ext/zlar2v.c
index 367627b..ab38100 100644
--- a/ext/zlar2v.c
+++ b/ext/zlar2v.c
@@ -107,7 +107,7 @@ rblapack_zlar2v(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -116,7 +116,7 @@ rblapack_zlar2v(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -125,7 +125,7 @@ rblapack_zlar2v(int argc, VALUE *argv, VALUE self){
   rblapack_y = rblapack_y_out__;
   y = y_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlarcm.c b/ext/zlarcm.c
index f35f1f1..5c9a1ad 100644
--- a/ext/zlarcm.c
+++ b/ext/zlarcm.c
@@ -62,7 +62,7 @@ rblapack_zlarcm(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarf.c b/ext/zlarf.c
index 071bc92..6bfda4c 100644
--- a/ext/zlarf.c
+++ b/ext/zlarf.c
@@ -75,7 +75,7 @@ rblapack_zlarf(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarfb.c b/ext/zlarfb.c
index fd47ef8..811905e 100644
--- a/ext/zlarfb.c
+++ b/ext/zlarfb.c
@@ -96,7 +96,7 @@ rblapack_zlarfb(int argc, VALUE *argv, VALUE self){
   c = NA_PTR_TYPE(rblapack_c, doublecomplex*);
   ldwork = MAX(1,n) ? side = 'l' : MAX(1,m) ? side = 'r' : 0;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarfg.c b/ext/zlarfg.c
index cbc6644..fbb54a0 100644
--- a/ext/zlarfg.c
+++ b/ext/zlarfg.c
@@ -58,7 +58,7 @@ rblapack_zlarfg(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlarfgp.c b/ext/zlarfgp.c
index 5a42aba..745678a 100644
--- a/ext/zlarfgp.c
+++ b/ext/zlarfgp.c
@@ -58,7 +58,7 @@ rblapack_zlarfgp(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-2)*abs(incx);
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlarft.c b/ext/zlarft.c
index 5b04dd6..ee111ef 100644
--- a/ext/zlarft.c
+++ b/ext/zlarft.c
@@ -73,14 +73,14 @@ rblapack_zlarft(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarfx.c b/ext/zlarfx.c
index fe293d7..8197a42 100644
--- a/ext/zlarfx.c
+++ b/ext/zlarfx.c
@@ -67,7 +67,7 @@ rblapack_zlarfx(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DCOMPLEX);
   c = NA_PTR_TYPE(rblapack_c, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlargv.c b/ext/zlargv.c
index 100b330..d41706c 100644
--- a/ext/zlargv.c
+++ b/ext/zlargv.c
@@ -75,13 +75,13 @@ rblapack_zlargv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incc;
     rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -90,7 +90,7 @@ rblapack_zlargv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlarnv.c b/ext/zlarnv.c
index 7e90ea8..122c0cc 100644
--- a/ext/zlarnv.c
+++ b/ext/zlarnv.c
@@ -53,13 +53,13 @@ rblapack_zlarnv(int argc, VALUE *argv, VALUE self){
     rblapack_iseed = na_change_type(rblapack_iseed, NA_LINT);
   iseed = NA_PTR_TYPE(rblapack_iseed, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,n);
     rblapack_x = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 4;
     rblapack_iseed_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zlarrv.c b/ext/zlarrv.c
index 34ec952..fb25b0c 100644
--- a/ext/zlarrv.c
+++ b/ext/zlarrv.c
@@ -193,20 +193,20 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
     rblapack_gers = na_change_type(rblapack_gers, NA_DFLOAT);
   gers = NA_PTR_TYPE(rblapack_gers, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -215,7 +215,7 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_l_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -224,7 +224,7 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_l = rblapack_l_out__;
   l = l_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -233,7 +233,7 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_w = rblapack_w_out__;
   w = w_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_werr_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -242,7 +242,7 @@ rblapack_zlarrv(int argc, VALUE *argv, VALUE self){
   rblapack_werr = rblapack_werr_out__;
   werr = werr_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_wgap_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlarscl2.c b/ext/zlarscl2.c
index 3c320a4..e8f9b7e 100644
--- a/ext/zlarscl2.c
+++ b/ext/zlarscl2.c
@@ -57,7 +57,7 @@ rblapack_zlarscl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlartv.c b/ext/zlartv.c
index e7c79df..b5b176c 100644
--- a/ext/zlartv.c
+++ b/ext/zlartv.c
@@ -97,7 +97,7 @@ rblapack_zlartv(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DCOMPLEX);
   s = NA_PTR_TYPE(rblapack_s, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incx;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -106,7 +106,7 @@ rblapack_zlartv(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1+(n-1)*incy;
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlarz.c b/ext/zlarz.c
index e993fd0..ba7e370 100644
--- a/ext/zlarz.c
+++ b/ext/zlarz.c
@@ -79,7 +79,7 @@ rblapack_zlarz(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarzb.c b/ext/zlarzb.c
index 0aa0b5c..7b9f1cb 100644
--- a/ext/zlarzb.c
+++ b/ext/zlarzb.c
@@ -100,7 +100,7 @@ rblapack_zlarzb(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_DCOMPLEX);
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlarzt.c b/ext/zlarzt.c
index 4e6c38a..6930b33 100644
--- a/ext/zlarzt.c
+++ b/ext/zlarzt.c
@@ -73,14 +73,14 @@ rblapack_zlarzt(int argc, VALUE *argv, VALUE self){
     rblapack_v = na_change_type(rblapack_v, NA_DCOMPLEX);
   v = NA_PTR_TYPE(rblapack_v, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = k;
     rblapack_t = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = lsame_(&storev,"C") ? k : lsame_(&storev,"R") ? n : 0;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlascl.c b/ext/zlascl.c
index 01fa958..bf8018c 100644
--- a/ext/zlascl.c
+++ b/ext/zlascl.c
@@ -71,7 +71,7 @@ rblapack_zlascl(int argc, VALUE *argv, VALUE self){
   m = NUM2INT(rblapack_m);
   cfrom = NUM2DBL(rblapack_cfrom);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlascl2.c b/ext/zlascl2.c
index fed9a10..e6176f7 100644
--- a/ext/zlascl2.c
+++ b/ext/zlascl2.c
@@ -57,7 +57,7 @@ rblapack_zlascl2(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaset.c b/ext/zlaset.c
index e9c148e..e7e91bf 100644
--- a/ext/zlaset.c
+++ b/ext/zlaset.c
@@ -63,7 +63,7 @@ rblapack_zlaset(int argc, VALUE *argv, VALUE self){
   beta.r = NUM2DBL(rb_funcall(rblapack_beta, rb_intern("real"), 0));
   beta.i = NUM2DBL(rb_funcall(rblapack_beta, rb_intern("imag"), 0));
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlasr.c b/ext/zlasr.c
index f5e4e8d..4c46906 100644
--- a/ext/zlasr.c
+++ b/ext/zlasr.c
@@ -85,7 +85,7 @@ rblapack_zlasr(int argc, VALUE *argv, VALUE self){
     rblapack_c = na_change_type(rblapack_c, NA_DFLOAT);
   c = NA_PTR_TYPE(rblapack_c, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlaswp.c b/ext/zlaswp.c
index ef1e26a..de71cc9 100644
--- a/ext/zlaswp.c
+++ b/ext/zlaswp.c
@@ -69,7 +69,7 @@ rblapack_zlaswp(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlasyf.c b/ext/zlasyf.c
index 4f2196e..65a75b4 100644
--- a/ext/zlasyf.c
+++ b/ext/zlasyf.c
@@ -62,13 +62,13 @@ rblapack_zlasyf(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlat2c.c b/ext/zlat2c.c
index a75f1bf..e5ed8f9 100644
--- a/ext/zlat2c.c
+++ b/ext/zlat2c.c
@@ -53,7 +53,7 @@ rblapack_zlat2c(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   ldsa = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldsa;
     shape[1] = n;
     rblapack_sa = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlatbs.c b/ext/zlatbs.c
index be99c6d..28b8f72 100644
--- a/ext/zlatbs.c
+++ b/ext/zlatbs.c
@@ -95,7 +95,7 @@ rblapack_zlatbs(int argc, VALUE *argv, VALUE self){
     rblapack_cnorm = na_change_type(rblapack_cnorm, NA_DFLOAT);
   cnorm = NA_PTR_TYPE(rblapack_cnorm, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -104,7 +104,7 @@ rblapack_zlatbs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlatdf.c b/ext/zlatdf.c
index 4cbfc23..6b00003 100644
--- a/ext/zlatdf.c
+++ b/ext/zlatdf.c
@@ -93,7 +93,7 @@ rblapack_zlatdf(int argc, VALUE *argv, VALUE self){
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   rdsum = NUM2DBL(rblapack_rdsum);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_rhs_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zlatps.c b/ext/zlatps.c
index 43e496c..0f24d19 100644
--- a/ext/zlatps.c
+++ b/ext/zlatps.c
@@ -89,7 +89,7 @@ rblapack_zlatps(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_zlatps(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlatrd.c b/ext/zlatrd.c
index 9c4c9c4..365abd3 100644
--- a/ext/zlatrd.c
+++ b/ext/zlatrd.c
@@ -61,26 +61,26 @@ rblapack_zlatrd(int argc, VALUE *argv, VALUE self){
   nb = NUM2INT(rblapack_nb);
   ldw = MAX(1,n);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldw;
     shape[1] = MAX(n,nb);
     rblapack_w = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlatrs.c b/ext/zlatrs.c
index fa9cc42..2387844 100644
--- a/ext/zlatrs.c
+++ b/ext/zlatrs.c
@@ -91,7 +91,7 @@ rblapack_zlatrs(int argc, VALUE *argv, VALUE self){
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   normin = StringValueCStr(rblapack_normin)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -100,7 +100,7 @@ rblapack_zlatrs(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cnorm_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zlatrz.c b/ext/zlatrz.c
index 3388b38..165c501 100644
--- a/ext/zlatrz.c
+++ b/ext/zlatrz.c
@@ -54,13 +54,13 @@ rblapack_zlatrz(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlatzm.c b/ext/zlatzm.c
index 4f1bd48..c0f7f18 100644
--- a/ext/zlatzm.c
+++ b/ext/zlatzm.c
@@ -95,7 +95,7 @@ rblapack_zlatzm(int argc, VALUE *argv, VALUE self){
     rblapack_c1 = na_change_type(rblapack_c1, NA_DCOMPLEX);
   c1 = NA_PTR_TYPE(rblapack_c1, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0;
     rblapack_c1_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -105,7 +105,7 @@ rblapack_zlatzm(int argc, VALUE *argv, VALUE self){
   rblapack_c1 = rblapack_c1_out__;
   c1 = c1_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0;
     rblapack_c2_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlauu2.c b/ext/zlauu2.c
index 7718445..7b644b4 100644
--- a/ext/zlauu2.c
+++ b/ext/zlauu2.c
@@ -51,7 +51,7 @@ rblapack_zlauu2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zlauum.c b/ext/zlauum.c
index f2b2f8e..4c8ef4d 100644
--- a/ext/zlauum.c
+++ b/ext/zlauum.c
@@ -51,7 +51,7 @@ rblapack_zlauum(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbequ.c b/ext/zpbequ.c
index 4aad785..1a8a1e0 100644
--- a/ext/zpbequ.c
+++ b/ext/zpbequ.c
@@ -59,7 +59,7 @@ rblapack_zpbequ(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zpbrfs.c b/ext/zpbrfs.c
index d9dcb77..db48878 100644
--- a/ext/zpbrfs.c
+++ b/ext/zpbrfs.c
@@ -103,19 +103,19 @@ rblapack_zpbrfs(int argc, VALUE *argv, VALUE self){
     rblapack_afb = na_change_type(rblapack_afb, NA_DCOMPLEX);
   afb = NA_PTR_TYPE(rblapack_afb, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbstf.c b/ext/zpbstf.c
index f58207a..9c01ea6 100644
--- a/ext/zpbstf.c
+++ b/ext/zpbstf.c
@@ -55,7 +55,7 @@ rblapack_zpbstf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbsv.c b/ext/zpbsv.c
index d83783d..5ad28e2 100644
--- a/ext/zpbsv.c
+++ b/ext/zpbsv.c
@@ -71,7 +71,7 @@ rblapack_zpbsv(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -81,7 +81,7 @@ rblapack_zpbsv(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbsvx.c b/ext/zpbsvx.c
index 7468799..b6b5989 100644
--- a/ext/zpbsvx.c
+++ b/ext/zpbsvx.c
@@ -121,26 +121,26 @@ rblapack_zpbsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -150,7 +150,7 @@ rblapack_zpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ab = rblapack_ab_out__;
   ab = ab_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldafb;
     shape[1] = n;
     rblapack_afb_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_zpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afb = rblapack_afb_out__;
   afb = afb_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -169,7 +169,7 @@ rblapack_zpbsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbtf2.c b/ext/zpbtf2.c
index 6cdd47a..8bfe08a 100644
--- a/ext/zpbtf2.c
+++ b/ext/zpbtf2.c
@@ -55,7 +55,7 @@ rblapack_zpbtf2(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbtrf.c b/ext/zpbtrf.c
index 371a2df..32957da 100644
--- a/ext/zpbtrf.c
+++ b/ext/zpbtrf.c
@@ -55,7 +55,7 @@ rblapack_zpbtrf(int argc, VALUE *argv, VALUE self){
   ab = NA_PTR_TYPE(rblapack_ab, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldab;
     shape[1] = n;
     rblapack_ab_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpbtrs.c b/ext/zpbtrs.c
index c46c84e..527d5f8 100644
--- a/ext/zpbtrs.c
+++ b/ext/zpbtrs.c
@@ -69,7 +69,7 @@ rblapack_zpbtrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpftrf.c b/ext/zpftrf.c
index e3f015d..d3f5181 100644
--- a/ext/zpftrf.c
+++ b/ext/zpftrf.c
@@ -57,7 +57,7 @@ rblapack_zpftrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, complex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpftri.c b/ext/zpftri.c
index abf255c..84f99cb 100644
--- a/ext/zpftri.c
+++ b/ext/zpftri.c
@@ -57,7 +57,7 @@ rblapack_zpftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpftrs.c b/ext/zpftrs.c
index ef3ff55..0da9bce 100644
--- a/ext/zpftrs.c
+++ b/ext/zpftrs.c
@@ -71,7 +71,7 @@ rblapack_zpftrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpoequ.c b/ext/zpoequ.c
index 7114f9d..175a569 100644
--- a/ext/zpoequ.c
+++ b/ext/zpoequ.c
@@ -51,7 +51,7 @@ rblapack_zpoequ(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zpoequb.c b/ext/zpoequb.c
index c137d94..cbbf113 100644
--- a/ext/zpoequb.c
+++ b/ext/zpoequb.c
@@ -51,7 +51,7 @@ rblapack_zpoequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zporfs.c b/ext/zporfs.c
index 71467c7..290258d 100644
--- a/ext/zporfs.c
+++ b/ext/zporfs.c
@@ -99,19 +99,19 @@ rblapack_zporfs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zporfsx.c b/ext/zporfsx.c
index 0db292e..cb5d092 100644
--- a/ext/zporfsx.c
+++ b/ext/zporfsx.c
@@ -137,27 +137,27 @@ rblapack_zporfsx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_DFLOAT);
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_zporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -176,7 +176,7 @@ rblapack_zporfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zposv.c b/ext/zposv.c
index 12ee1a0..277f8b5 100644
--- a/ext/zposv.c
+++ b/ext/zposv.c
@@ -67,7 +67,7 @@ rblapack_zposv(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -77,7 +77,7 @@ rblapack_zposv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zposvx.c b/ext/zposvx.c
index f869bc7..89e87b2 100644
--- a/ext/zposvx.c
+++ b/ext/zposvx.c
@@ -117,26 +117,26 @@ rblapack_zposvx(int argc, VALUE *argv, VALUE self){
   af = NA_PTR_TYPE(rblapack_af, doublecomplex*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -146,7 +146,7 @@ rblapack_zposvx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -156,7 +156,7 @@ rblapack_zposvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -165,7 +165,7 @@ rblapack_zposvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zposvxx.c b/ext/zposvxx.c
index c33fe44..5cc57c7 100644
--- a/ext/zposvxx.c
+++ b/ext/zposvxx.c
@@ -137,34 +137,34 @@ rblapack_zposvxx(int argc, VALUE *argv, VALUE self){
     rblapack_params = na_change_type(rblapack_params, NA_DFLOAT);
   params = NA_PTR_TYPE(rblapack_params, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -174,7 +174,7 @@ rblapack_zposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_zposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -193,7 +193,7 @@ rblapack_zposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -203,7 +203,7 @@ rblapack_zposvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zpotf2.c b/ext/zpotf2.c
index 238468f..94156fc 100644
--- a/ext/zpotf2.c
+++ b/ext/zpotf2.c
@@ -51,7 +51,7 @@ rblapack_zpotf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpotrf.c b/ext/zpotrf.c
index 30ccd2a..0d705fa 100644
--- a/ext/zpotrf.c
+++ b/ext/zpotrf.c
@@ -51,7 +51,7 @@ rblapack_zpotrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpotri.c b/ext/zpotri.c
index 3d13955..46d0fe0 100644
--- a/ext/zpotri.c
+++ b/ext/zpotri.c
@@ -51,7 +51,7 @@ rblapack_zpotri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpotrs.c b/ext/zpotrs.c
index 9ce57a2..b81f58d 100644
--- a/ext/zpotrs.c
+++ b/ext/zpotrs.c
@@ -65,7 +65,7 @@ rblapack_zpotrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zppequ.c b/ext/zppequ.c
index 2e59c9f..a724328 100644
--- a/ext/zppequ.c
+++ b/ext/zppequ.c
@@ -55,7 +55,7 @@ rblapack_zppequ(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zpprfs.c b/ext/zpprfs.c
index 0dec283..60ae3de 100644
--- a/ext/zpprfs.c
+++ b/ext/zpprfs.c
@@ -97,19 +97,19 @@ rblapack_zpprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zppsv.c b/ext/zppsv.c
index e0ef783..5d6b2ab 100644
--- a/ext/zppsv.c
+++ b/ext/zppsv.c
@@ -69,7 +69,7 @@ rblapack_zppsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -78,7 +78,7 @@ rblapack_zppsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zppsvx.c b/ext/zppsvx.c
index abe2247..6448f76 100644
--- a/ext/zppsvx.c
+++ b/ext/zppsvx.c
@@ -113,26 +113,26 @@ rblapack_zppsvx(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_zppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -150,7 +150,7 @@ rblapack_zppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -159,7 +159,7 @@ rblapack_zppsvx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpptrf.c b/ext/zpptrf.c
index 454284e..f5d82d4 100644
--- a/ext/zpptrf.c
+++ b/ext/zpptrf.c
@@ -53,7 +53,7 @@ rblapack_zpptrf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpptri.c b/ext/zpptri.c
index ab26029..697df90 100644
--- a/ext/zpptri.c
+++ b/ext/zpptri.c
@@ -53,7 +53,7 @@ rblapack_zpptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpptrs.c b/ext/zpptrs.c
index 61da944..05b3617 100644
--- a/ext/zpptrs.c
+++ b/ext/zpptrs.c
@@ -67,7 +67,7 @@ rblapack_zpptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpstf2.c b/ext/zpstf2.c
index 385d668..29488b0 100644
--- a/ext/zpstf2.c
+++ b/ext/zpstf2.c
@@ -60,13 +60,13 @@ rblapack_zpstf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpstrf.c b/ext/zpstrf.c
index 32d42b5..f3a1d1e 100644
--- a/ext/zpstrf.c
+++ b/ext/zpstrf.c
@@ -60,13 +60,13 @@ rblapack_zpstrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_piv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   piv = NA_PTR_TYPE(rblapack_piv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zpteqr.c b/ext/zpteqr.c
index 1104b2b..4aec111 100644
--- a/ext/zpteqr.c
+++ b/ext/zpteqr.c
@@ -80,7 +80,7 @@ rblapack_zpteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_zpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_zpteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zptrfs.c b/ext/zptrfs.c
index 78abc02..653a61b 100644
--- a/ext/zptrfs.c
+++ b/ext/zptrfs.c
@@ -119,19 +119,19 @@ rblapack_zptrfs(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zptsv.c b/ext/zptsv.c
index 586d35a..8973954 100644
--- a/ext/zptsv.c
+++ b/ext/zptsv.c
@@ -79,7 +79,7 @@ rblapack_zptsv(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -88,7 +88,7 @@ rblapack_zptsv(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -97,7 +97,7 @@ rblapack_zptsv(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zptsvx.c b/ext/zptsvx.c
index e02b7ba..93e0ae6 100644
--- a/ext/zptsvx.c
+++ b/ext/zptsvx.c
@@ -113,26 +113,26 @@ rblapack_zptsvx(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublecomplex*);
   ldx = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_df_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -141,7 +141,7 @@ rblapack_zptsvx(int argc, VALUE *argv, VALUE self){
   rblapack_df = rblapack_df_out__;
   df = df_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_ef_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpttrf.c b/ext/zpttrf.c
index d97b0b3..6a0011a 100644
--- a/ext/zpttrf.c
+++ b/ext/zpttrf.c
@@ -59,7 +59,7 @@ rblapack_zpttrf(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -68,7 +68,7 @@ rblapack_zpttrf(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zpttrs.c b/ext/zpttrs.c
index 9c8134d..68e9363 100644
--- a/ext/zpttrs.c
+++ b/ext/zpttrs.c
@@ -75,7 +75,7 @@ rblapack_zpttrs(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zptts2.c b/ext/zptts2.c
index e6208ba..91a9169 100644
--- a/ext/zptts2.c
+++ b/ext/zptts2.c
@@ -73,7 +73,7 @@ rblapack_zptts2(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DCOMPLEX);
   e = NA_PTR_TYPE(rblapack_e, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zrot.c b/ext/zrot.c
index 81158a3..558555f 100644
--- a/ext/zrot.c
+++ b/ext/zrot.c
@@ -74,7 +74,7 @@ rblapack_zrot(int argc, VALUE *argv, VALUE self){
   s.i = NUM2DBL(rb_funcall(rblapack_s, rb_intern("imag"), 0));
   incy = NUM2INT(rblapack_incy);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cx_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -83,7 +83,7 @@ rblapack_zrot(int argc, VALUE *argv, VALUE self){
   rblapack_cx = rblapack_cx_out__;
   cx = cx_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_cy_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zspmv.c b/ext/zspmv.c
index f4b461f..1e39e0e 100644
--- a/ext/zspmv.c
+++ b/ext/zspmv.c
@@ -93,7 +93,7 @@ rblapack_zspmv(int argc, VALUE *argv, VALUE self){
   beta.r = NUM2DBL(rb_funcall(rblapack_beta, rb_intern("real"), 0));
   beta.i = NUM2DBL(rb_funcall(rblapack_beta, rb_intern("imag"), 0));
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zspr.c b/ext/zspr.c
index 77552cf..dfae18d 100644
--- a/ext/zspr.c
+++ b/ext/zspr.c
@@ -72,7 +72,7 @@ rblapack_zspr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*( n + 1 ) )/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zsprfs.c b/ext/zsprfs.c
index 6615299..e3ab100 100644
--- a/ext/zsprfs.c
+++ b/ext/zsprfs.c
@@ -107,19 +107,19 @@ rblapack_zsprfs(int argc, VALUE *argv, VALUE self){
     rblapack_afp = na_change_type(rblapack_afp, NA_DCOMPLEX);
   afp = NA_PTR_TYPE(rblapack_afp, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zspsv.c b/ext/zspsv.c
index 1e19154..4144a14 100644
--- a/ext/zspsv.c
+++ b/ext/zspsv.c
@@ -69,13 +69,13 @@ rblapack_zspsv(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -84,7 +84,7 @@ rblapack_zspsv(int argc, VALUE *argv, VALUE self){
   rblapack_ap = rblapack_ap_out__;
   ap = ap_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zspsvx.c b/ext/zspsvx.c
index c63904f..120f845 100644
--- a/ext/zspsvx.c
+++ b/ext/zspsvx.c
@@ -105,26 +105,26 @@ rblapack_zspsvx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_afp_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
@@ -133,7 +133,7 @@ rblapack_zspsvx(int argc, VALUE *argv, VALUE self){
   rblapack_afp = rblapack_afp_out__;
   afp = afp_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zsptrf.c b/ext/zsptrf.c
index bc3f797..616fabc 100644
--- a/ext/zsptrf.c
+++ b/ext/zsptrf.c
@@ -53,13 +53,13 @@ rblapack_zsptrf(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   n = ((int)sqrtf(ldap*8+1.0f)-1)/2;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ldap;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zsptri.c b/ext/zsptri.c
index ce7ab64..de0cd14 100644
--- a/ext/zsptri.c
+++ b/ext/zsptri.c
@@ -62,7 +62,7 @@ rblapack_zsptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zsptrs.c b/ext/zsptrs.c
index 49cf64c..8ec8a24 100644
--- a/ext/zsptrs.c
+++ b/ext/zsptrs.c
@@ -75,7 +75,7 @@ rblapack_zsptrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zstedc.c b/ext/zstedc.c
index 6dfc927..092fd74 100644
--- a/ext/zstedc.c
+++ b/ext/zstedc.c
@@ -115,25 +115,25 @@ rblapack_zstedc(int argc, VALUE *argv, VALUE self){
     lrwork = NUM2INT(rblapack_lrwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lrwork);
     rblapack_rwork = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   rwork = NA_PTR_TYPE(rblapack_rwork, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -142,7 +142,7 @@ rblapack_zstedc(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -151,7 +151,7 @@ rblapack_zstedc(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zstegr.c b/ext/zstegr.c
index a015f74..b553b1b 100644
--- a/ext/zstegr.c
+++ b/ext/zstegr.c
@@ -122,38 +122,38 @@ rblapack_zstegr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -162,7 +162,7 @@ rblapack_zstegr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zstein.c b/ext/zstein.c
index 490639f..a96646c 100644
--- a/ext/zstein.c
+++ b/ext/zstein.c
@@ -101,14 +101,14 @@ rblapack_zstein(int argc, VALUE *argv, VALUE self){
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   ldz = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = m;
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_ifail = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zstemr.c b/ext/zstemr.c
index 570ea2e..4ea013b 100644
--- a/ext/zstemr.c
+++ b/ext/zstemr.c
@@ -126,38 +126,38 @@ rblapack_zstemr(int argc, VALUE *argv, VALUE self){
     liwork = NUM2INT(rblapack_liwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = MAX(1,m);
     rblapack_z = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   z = NA_PTR_TYPE(rblapack_z, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2*MAX(1,m);
     rblapack_isuppz = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   isuppz = NA_PTR_TYPE(rblapack_isuppz, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -166,7 +166,7 @@ rblapack_zstemr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zsteqr.c b/ext/zsteqr.c
index 20879fe..a183695 100644
--- a/ext/zsteqr.c
+++ b/ext/zsteqr.c
@@ -80,7 +80,7 @@ rblapack_zsteqr(int argc, VALUE *argv, VALUE self){
     rblapack_e = na_change_type(rblapack_e, NA_DFLOAT);
   e = NA_PTR_TYPE(rblapack_e, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -89,7 +89,7 @@ rblapack_zsteqr(int argc, VALUE *argv, VALUE self){
   rblapack_d = rblapack_d_out__;
   d = d_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n-1;
     rblapack_e_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -98,7 +98,7 @@ rblapack_zsteqr(int argc, VALUE *argv, VALUE self){
   rblapack_e = rblapack_e_out__;
   e = e_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsyequb.c b/ext/zsyequb.c
index d628a0a..592ad98 100644
--- a/ext/zsyequb.c
+++ b/ext/zsyequb.c
@@ -56,7 +56,7 @@ rblapack_zsyequb(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zsymv.c b/ext/zsymv.c
index 3b9ba91..ea39cfe 100644
--- a/ext/zsymv.c
+++ b/ext/zsymv.c
@@ -91,7 +91,7 @@ rblapack_zsymv(int argc, VALUE *argv, VALUE self){
     rblapack_y = na_change_type(rblapack_y, NA_DCOMPLEX);
   y = NA_PTR_TYPE(rblapack_y, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 1 + ( n - 1 )*abs( incy );
     rblapack_y_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zsyr.c b/ext/zsyr.c
index ea8c033..d91c25e 100644
--- a/ext/zsyr.c
+++ b/ext/zsyr.c
@@ -70,7 +70,7 @@ rblapack_zsyr(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsyrfs.c b/ext/zsyrfs.c
index 3a0149e..d73e100 100644
--- a/ext/zsyrfs.c
+++ b/ext/zsyrfs.c
@@ -111,19 +111,19 @@ rblapack_zsyrfs(int argc, VALUE *argv, VALUE self){
     rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsyrfsx.c b/ext/zsyrfsx.c
index 3bffd4d..a307d8a 100644
--- a/ext/zsyrfsx.c
+++ b/ext/zsyrfsx.c
@@ -149,27 +149,27 @@ rblapack_zsyrfsx(int argc, VALUE *argv, VALUE self){
     rblapack_x = na_change_type(rblapack_x, NA_DCOMPLEX);
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -178,7 +178,7 @@ rblapack_zsyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_zsyrfsx(int argc, VALUE *argv, VALUE self){
   rblapack_x = rblapack_x_out__;
   x = x_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zsysv.c b/ext/zsysv.c
index 9fcbd9a..e643f2b 100644
--- a/ext/zsysv.c
+++ b/ext/zsysv.c
@@ -81,19 +81,19 @@ rblapack_zsysv(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -103,7 +103,7 @@ rblapack_zsysv(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsysvx.c b/ext/zsysvx.c
index 14debfa..54fd40a 100644
--- a/ext/zsysvx.c
+++ b/ext/zsysvx.c
@@ -120,32 +120,32 @@ rblapack_zsysvx(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -155,7 +155,7 @@ rblapack_zsysvx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
diff --git a/ext/zsysvxx.c b/ext/zsysvxx.c
index 38c7bf6..48b306d 100644
--- a/ext/zsysvxx.c
+++ b/ext/zsysvxx.c
@@ -151,34 +151,34 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx;
     shape[1] = nrhs;
     rblapack_x = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
   }
   x = NA_PTR_TYPE(rblapack_x, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   berr = NA_PTR_TYPE(rblapack_berr, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_norm = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_norm = NA_PTR_TYPE(rblapack_err_bnds_norm, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = nrhs;
     shape[1] = n_err_bnds;
     rblapack_err_bnds_comp = na_make_object(NA_DFLOAT, 2, shape, cNArray);
   }
   err_bnds_comp = NA_PTR_TYPE(rblapack_err_bnds_comp, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldaf;
     shape[1] = n;
     rblapack_af_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_af = rblapack_af_out__;
   af = af_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
   }
@@ -207,7 +207,7 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_ipiv = rblapack_ipiv_out__;
   ipiv = ipiv_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_s_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
@@ -216,7 +216,7 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_s = rblapack_s_out__;
   s = s_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -226,7 +226,7 @@ rblapack_zsysvxx(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nparams;
     rblapack_params_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/zsyswapr.c b/ext/zsyswapr.c
index e68b319..73010c3 100644
--- a/ext/zsyswapr.c
+++ b/ext/zsyswapr.c
@@ -57,7 +57,7 @@ rblapack_zsyswapr(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   i2 = NUM2INT(rblapack_i2);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytf2.c b/ext/zsytf2.c
index 8150a89..156a954 100644
--- a/ext/zsytf2.c
+++ b/ext/zsytf2.c
@@ -53,13 +53,13 @@ rblapack_zsytf2(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytrf.c b/ext/zsytrf.c
index 81850ec..37d63a9 100644
--- a/ext/zsytrf.c
+++ b/ext/zsytrf.c
@@ -59,19 +59,19 @@ rblapack_zsytrf(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytri.c b/ext/zsytri.c
index 078b786..b1630ea 100644
--- a/ext/zsytri.c
+++ b/ext/zsytri.c
@@ -64,7 +64,7 @@ rblapack_zsytri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytri2.c b/ext/zsytri2.c
index 29b405b..4fc213e 100644
--- a/ext/zsytri2.c
+++ b/ext/zsytri2.c
@@ -76,7 +76,7 @@ rblapack_zsytri2(int argc, VALUE *argv, VALUE self){
   nb = ilaenv_(&c__1, "ZSYTRF", &uplo, &n, &c__m1, &c__m1, &c__m1);
   lwork = (n+nb+1)*(nb+3);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytri2x.c b/ext/zsytri2x.c
index 3c30507..b1dadb1 100644
--- a/ext/zsytri2x.c
+++ b/ext/zsytri2x.c
@@ -68,7 +68,7 @@ rblapack_zsytri2x(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   nb = NUM2INT(rblapack_nb);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytrs.c b/ext/zsytrs.c
index 1a0f9bd..c73ac7c 100644
--- a/ext/zsytrs.c
+++ b/ext/zsytrs.c
@@ -77,7 +77,7 @@ rblapack_zsytrs(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zsytrs2.c b/ext/zsytrs2.c
index 8a6c228..e99d96e 100644
--- a/ext/zsytrs2.c
+++ b/ext/zsytrs2.c
@@ -78,7 +78,7 @@ rblapack_zsytrs2(int argc, VALUE *argv, VALUE self){
     rblapack_b = na_change_type(rblapack_b, NA_DCOMPLEX);
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztbrfs.c b/ext/ztbrfs.c
index 3bdf60b..cfb6c2c 100644
--- a/ext/ztbrfs.c
+++ b/ext/ztbrfs.c
@@ -95,13 +95,13 @@ rblapack_ztbrfs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ztbtrs.c b/ext/ztbtrs.c
index a39bb14..ddef179 100644
--- a/ext/ztbtrs.c
+++ b/ext/ztbtrs.c
@@ -77,7 +77,7 @@ rblapack_ztbtrs(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   kd = NUM2INT(rblapack_kd);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztfsm.c b/ext/ztfsm.c
index 4ba1945..f79430c 100644
--- a/ext/ztfsm.c
+++ b/ext/ztfsm.c
@@ -86,7 +86,7 @@ rblapack_ztfsm(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztftri.c b/ext/ztftri.c
index 8005643..bed4332 100644
--- a/ext/ztftri.c
+++ b/ext/ztftri.c
@@ -61,7 +61,7 @@ rblapack_ztftri(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztfttp.c b/ext/ztfttp.c
index ceca866..0a4f2ac 100644
--- a/ext/ztfttp.c
+++ b/ext/ztfttp.c
@@ -57,7 +57,7 @@ rblapack_ztfttp(int argc, VALUE *argv, VALUE self){
     rblapack_arf = na_change_type(rblapack_arf, NA_DCOMPLEX);
   arf = NA_PTR_TYPE(rblapack_arf, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztfttr.c b/ext/ztfttr.c
index ab9da7c..2a3d9d3 100644
--- a/ext/ztfttr.c
+++ b/ext/ztfttr.c
@@ -57,7 +57,7 @@ rblapack_ztfttr(int argc, VALUE *argv, VALUE self){
   uplo = StringValueCStr(rblapack_uplo)[0];
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgevc.c b/ext/ztgevc.c
index e760b6b..ee025e7 100644
--- a/ext/ztgevc.c
+++ b/ext/ztgevc.c
@@ -115,7 +115,7 @@ rblapack_ztgevc(int argc, VALUE *argv, VALUE self){
     rblapack_s = na_change_type(rblapack_s, NA_DCOMPLEX);
   s = NA_PTR_TYPE(rblapack_s, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ztgevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgex2.c b/ext/ztgex2.c
index 3fc1805..5c1a52a 100644
--- a/ext/ztgex2.c
+++ b/ext/ztgex2.c
@@ -115,7 +115,7 @@ rblapack_ztgex2(int argc, VALUE *argv, VALUE self){
     rblapack_q = na_change_type(rblapack_q, NA_DCOMPLEX);
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ztgex2(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -135,7 +135,7 @@ rblapack_ztgex2(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantq ? ldq : 0;
     shape[1] = wantq ? n : 0;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_ztgex2(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = wantq ? ldz : 0;
     shape[1] = wantq ? n : 0;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgexc.c b/ext/ztgexc.c
index 33c0436..e935e96 100644
--- a/ext/ztgexc.c
+++ b/ext/ztgexc.c
@@ -115,7 +115,7 @@ rblapack_ztgexc(int argc, VALUE *argv, VALUE self){
   b = NA_PTR_TYPE(rblapack_b, doublecomplex*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ztgexc(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -135,7 +135,7 @@ rblapack_ztgexc(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -145,7 +145,7 @@ rblapack_ztgexc(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgsen.c b/ext/ztgsen.c
index 40fbe3f..06cabb4 100644
--- a/ext/ztgsen.c
+++ b/ext/ztgsen.c
@@ -155,37 +155,37 @@ rblapack_ztgsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = 2;
     rblapack_dif = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,liwork);
     rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
   }
   iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -195,7 +195,7 @@ rblapack_ztgsen(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -205,7 +205,7 @@ rblapack_ztgsen(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -215,7 +215,7 @@ rblapack_ztgsen(int argc, VALUE *argv, VALUE self){
   rblapack_q = rblapack_q_out__;
   q = q_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldz;
     shape[1] = n;
     rblapack_z_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgsja.c b/ext/ztgsja.c
index a341004..51c95ac 100644
--- a/ext/ztgsja.c
+++ b/ext/ztgsja.c
@@ -146,19 +146,19 @@ rblapack_ztgsja(int argc, VALUE *argv, VALUE self){
   q = NA_PTR_TYPE(rblapack_q, doublecomplex*);
   tola = NUM2DBL(rblapack_tola);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_alpha = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   alpha = NA_PTR_TYPE(rblapack_alpha, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -168,7 +168,7 @@ rblapack_ztgsja(int argc, VALUE *argv, VALUE self){
   rblapack_a = rblapack_a_out__;
   a = a_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = n;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -178,7 +178,7 @@ rblapack_ztgsja(int argc, VALUE *argv, VALUE self){
   rblapack_b = rblapack_b_out__;
   b = b_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldu;
     shape[1] = m;
     rblapack_u_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -188,7 +188,7 @@ rblapack_ztgsja(int argc, VALUE *argv, VALUE self){
   rblapack_u = rblapack_u_out__;
   u = u_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldv;
     shape[1] = p;
     rblapack_v_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -198,7 +198,7 @@ rblapack_ztgsja(int argc, VALUE *argv, VALUE self){
   rblapack_v = rblapack_v_out__;
   v = v_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgsna.c b/ext/ztgsna.c
index c884706..59a2974 100644
--- a/ext/ztgsna.c
+++ b/ext/ztgsna.c
@@ -127,19 +127,19 @@ rblapack_ztgsna(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_dif = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   dif = NA_PTR_TYPE(rblapack_dif, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztgsy2.c b/ext/ztgsy2.c
index 6cf9cb7..66a422b 100644
--- a/ext/ztgsy2.c
+++ b/ext/ztgsy2.c
@@ -137,7 +137,7 @@ rblapack_ztgsy2(int argc, VALUE *argv, VALUE self){
     rblapack_f = na_change_type(rblapack_f, NA_DCOMPLEX);
   f = NA_PTR_TYPE(rblapack_f, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -147,7 +147,7 @@ rblapack_ztgsy2(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztgsyl.c b/ext/ztgsyl.c
index 3704e9e..f501a97 100644
--- a/ext/ztgsyl.c
+++ b/ext/ztgsyl.c
@@ -144,13 +144,13 @@ rblapack_ztgsyl(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -160,7 +160,7 @@ rblapack_ztgsyl(int argc, VALUE *argv, VALUE self){
   rblapack_c = rblapack_c_out__;
   c = c_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldf;
     shape[1] = n;
     rblapack_f_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztprfs.c b/ext/ztprfs.c
index d165de1..71e2c90 100644
--- a/ext/ztprfs.c
+++ b/ext/ztprfs.c
@@ -91,13 +91,13 @@ rblapack_ztprfs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ztptri.c b/ext/ztptri.c
index 8c1985c..5c9139c 100644
--- a/ext/ztptri.c
+++ b/ext/ztptri.c
@@ -57,7 +57,7 @@ rblapack_ztptri(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n*(n+1)/2;
     rblapack_ap_out__ = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztptrs.c b/ext/ztptrs.c
index 5970bcf..bdaa9f1 100644
--- a/ext/ztptrs.c
+++ b/ext/ztptrs.c
@@ -75,7 +75,7 @@ rblapack_ztptrs(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztpttf.c b/ext/ztpttf.c
index 836ef17..43edd07 100644
--- a/ext/ztpttf.c
+++ b/ext/ztpttf.c
@@ -57,7 +57,7 @@ rblapack_ztpttf(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztpttr.c b/ext/ztpttr.c
index 85ec0df..5903b66 100644
--- a/ext/ztpttr.c
+++ b/ext/ztpttr.c
@@ -53,7 +53,7 @@ rblapack_ztpttr(int argc, VALUE *argv, VALUE self){
   n = ((int)sqrtf(ldap*8-1.0f)-1)/2;
   lda = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrevc.c b/ext/ztrevc.c
index c6758bf..585c321 100644
--- a/ext/ztrevc.c
+++ b/ext/ztrevc.c
@@ -103,7 +103,7 @@ rblapack_ztrevc(int argc, VALUE *argv, VALUE self){
     rblapack_t = na_change_type(rblapack_t, NA_DCOMPLEX);
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -113,7 +113,7 @@ rblapack_ztrevc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvl;
     shape[1] = mm;
     rblapack_vl_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -123,7 +123,7 @@ rblapack_ztrevc(int argc, VALUE *argv, VALUE self){
   rblapack_vl = rblapack_vl_out__;
   vl = vl_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldvr;
     shape[1] = mm;
     rblapack_vr_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrexc.c b/ext/ztrexc.c
index 1677676..dc3d4df 100644
--- a/ext/ztrexc.c
+++ b/ext/ztrexc.c
@@ -75,7 +75,7 @@ rblapack_ztrexc(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   ifst = NUM2INT(rblapack_ifst);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -85,7 +85,7 @@ rblapack_ztrexc(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrrfs.c b/ext/ztrrfs.c
index 2db1052..43e1901 100644
--- a/ext/ztrrfs.c
+++ b/ext/ztrrfs.c
@@ -91,13 +91,13 @@ rblapack_ztrrfs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_ferr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   ferr = NA_PTR_TYPE(rblapack_ferr, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = nrhs;
     rblapack_berr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ztrsen.c b/ext/ztrsen.c
index ee82998..d242ed1 100644
--- a/ext/ztrsen.c
+++ b/ext/ztrsen.c
@@ -103,19 +103,19 @@ rblapack_ztrsen(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = n;
     rblapack_w = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   w = NA_PTR_TYPE(rblapack_w, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldt;
     shape[1] = n;
     rblapack_t_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -125,7 +125,7 @@ rblapack_ztrsen(int argc, VALUE *argv, VALUE self){
   rblapack_t = rblapack_t_out__;
   t = t_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrsna.c b/ext/ztrsna.c
index a024df2..fe1aa46 100644
--- a/ext/ztrsna.c
+++ b/ext/ztrsna.c
@@ -104,13 +104,13 @@ rblapack_ztrsna(int argc, VALUE *argv, VALUE self){
   t = NA_PTR_TYPE(rblapack_t, doublecomplex*);
   ldwork = ((lsame_(&job,"V")) || (lsame_(&job,"B"))) ? n : 1;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_s = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   s = NA_PTR_TYPE(rblapack_s, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = mm;
     rblapack_sep = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
diff --git a/ext/ztrsyl.c b/ext/ztrsyl.c
index 22c2282..f33a200 100644
--- a/ext/ztrsyl.c
+++ b/ext/ztrsyl.c
@@ -89,7 +89,7 @@ rblapack_ztrsyl(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrti2.c b/ext/ztrti2.c
index a8eee22..4023e0a 100644
--- a/ext/ztrti2.c
+++ b/ext/ztrti2.c
@@ -55,7 +55,7 @@ rblapack_ztrti2(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrtri.c b/ext/ztrtri.c
index e166f6f..228f38c 100644
--- a/ext/ztrtri.c
+++ b/ext/ztrtri.c
@@ -55,7 +55,7 @@ rblapack_ztrtri(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   diag = StringValueCStr(rblapack_diag)[0];
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrtrs.c b/ext/ztrtrs.c
index 43814dc..474c78f 100644
--- a/ext/ztrtrs.c
+++ b/ext/ztrtrs.c
@@ -73,7 +73,7 @@ rblapack_ztrtrs(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldb;
     shape[1] = nrhs;
     rblapack_b_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztrttf.c b/ext/ztrttf.c
index abca98d..e66468b 100644
--- a/ext/ztrttf.c
+++ b/ext/ztrttf.c
@@ -55,7 +55,7 @@ rblapack_ztrttf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   uplo = StringValueCStr(rblapack_uplo)[0];
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_arf = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztrttp.c b/ext/ztrttp.c
index cdad41b..073eb20 100644
--- a/ext/ztrttp.c
+++ b/ext/ztrttp.c
@@ -51,7 +51,7 @@ rblapack_ztrttp(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = ( n*(n+1)/2 );
     rblapack_ap = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/ztzrqf.c b/ext/ztzrqf.c
index ff55e50..9e5773e 100644
--- a/ext/ztzrqf.c
+++ b/ext/ztzrqf.c
@@ -51,13 +51,13 @@ rblapack_ztzrqf(int argc, VALUE *argv, VALUE self){
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   m = lda;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/ztzrzf.c b/ext/ztzrzf.c
index 3b226d3..5722330 100644
--- a/ext/ztzrzf.c
+++ b/ext/ztzrzf.c
@@ -63,19 +63,19 @@ rblapack_ztzrzf(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m;
     rblapack_tau = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunbdb.c b/ext/zunbdb.c
index 53075db..b4005b5 100644
--- a/ext/zunbdb.c
+++ b/ext/zunbdb.c
@@ -138,43 +138,43 @@ rblapack_zunbdb(int argc, VALUE *argv, VALUE self){
     rblapack_x12 = na_change_type(rblapack_x12, NA_DCOMPLEX);
   x12 = NA_PTR_TYPE(rblapack_x12, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_theta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q-1;
     rblapack_phi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   phi = NA_PTR_TYPE(rblapack_phi, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_taup1 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taup1 = NA_PTR_TYPE(rblapack_taup1, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_taup2 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   taup2 = NA_PTR_TYPE(rblapack_taup2, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_tauq1 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tauq1 = NA_PTR_TYPE(rblapack_tauq1, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_tauq2 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   tauq2 = NA_PTR_TYPE(rblapack_tauq2, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx11;
     shape[1] = q;
     rblapack_x11_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -184,7 +184,7 @@ rblapack_zunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x11 = rblapack_x11_out__;
   x11 = x11_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx12;
     shape[1] = m-q;
     rblapack_x12_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -194,7 +194,7 @@ rblapack_zunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x12 = rblapack_x12_out__;
   x12 = x12_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx21;
     shape[1] = q;
     rblapack_x21_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
@@ -204,7 +204,7 @@ rblapack_zunbdb(int argc, VALUE *argv, VALUE self){
   rblapack_x21 = rblapack_x21_out__;
   x21 = x21_out__;
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldx22;
     shape[1] = m-q;
     rblapack_x22_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zuncsd.c b/ext/zuncsd.c
index 9f24b97..131b0c8 100644
--- a/ext/zuncsd.c
+++ b/ext/zuncsd.c
@@ -152,31 +152,31 @@ rblapack_zuncsd(int argc, VALUE *argv, VALUE self){
   ldu2 = lsame_(&jobu2,"Y") ? MAX(1,m-p) : 0;
   ldx22 = p;
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MIN(MIN(MIN(p,m-p),q),m-q);
     rblapack_theta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
   }
   theta = NA_PTR_TYPE(rblapack_theta, doublereal*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = p;
     rblapack_u1 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   u1 = NA_PTR_TYPE(rblapack_u1, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-p;
     rblapack_u2 = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   u2 = NA_PTR_TYPE(rblapack_u2, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = q;
     rblapack_v1t = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   v1t = NA_PTR_TYPE(rblapack_v1t, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = m-q;
     rblapack_v2t = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
diff --git a/ext/zung2l.c b/ext/zung2l.c
index 89dd8bc..1aef565 100644
--- a/ext/zung2l.c
+++ b/ext/zung2l.c
@@ -64,7 +64,7 @@ rblapack_zung2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zung2r.c b/ext/zung2r.c
index c543cc5..8d5081c 100644
--- a/ext/zung2r.c
+++ b/ext/zung2r.c
@@ -64,7 +64,7 @@ rblapack_zung2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungbr.c b/ext/zungbr.c
index 1f493b3..e0d568b 100644
--- a/ext/zungbr.c
+++ b/ext/zungbr.c
@@ -83,13 +83,13 @@ rblapack_zungbr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunghr.c b/ext/zunghr.c
index dbc7dc8..2c4f735 100644
--- a/ext/zunghr.c
+++ b/ext/zunghr.c
@@ -79,13 +79,13 @@ rblapack_zunghr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungl2.c b/ext/zungl2.c
index 3330c68..75b8f4d 100644
--- a/ext/zungl2.c
+++ b/ext/zungl2.c
@@ -62,7 +62,7 @@ rblapack_zungl2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunglq.c b/ext/zunglq.c
index 54d83c8..30296c2 100644
--- a/ext/zunglq.c
+++ b/ext/zunglq.c
@@ -75,13 +75,13 @@ rblapack_zunglq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungql.c b/ext/zungql.c
index 2975a6f..ab0efc7 100644
--- a/ext/zungql.c
+++ b/ext/zungql.c
@@ -75,13 +75,13 @@ rblapack_zungql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungqr.c b/ext/zungqr.c
index e24f363..b92180e 100644
--- a/ext/zungqr.c
+++ b/ext/zungqr.c
@@ -75,13 +75,13 @@ rblapack_zungqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungr2.c b/ext/zungr2.c
index 29af8ab..6c65c29 100644
--- a/ext/zungr2.c
+++ b/ext/zungr2.c
@@ -62,7 +62,7 @@ rblapack_zungr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungrq.c b/ext/zungrq.c
index 945faf5..3807e03 100644
--- a/ext/zungrq.c
+++ b/ext/zungrq.c
@@ -75,13 +75,13 @@ rblapack_zungrq(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zungtr.c b/ext/zungtr.c
index 565b364..e243a18 100644
--- a/ext/zungtr.c
+++ b/ext/zungtr.c
@@ -75,13 +75,13 @@ rblapack_zungtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = lda;
     shape[1] = n;
     rblapack_a_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunm2l.c b/ext/zunm2l.c
index 09892b3..5771fea 100644
--- a/ext/zunm2l.c
+++ b/ext/zunm2l.c
@@ -86,7 +86,7 @@ rblapack_zunm2l(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunm2r.c b/ext/zunm2r.c
index 4566c81..02659c0 100644
--- a/ext/zunm2r.c
+++ b/ext/zunm2r.c
@@ -86,7 +86,7 @@ rblapack_zunm2r(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmbr.c b/ext/zunmbr.c
index 377466c..b7f6d31 100644
--- a/ext/zunmbr.c
+++ b/ext/zunmbr.c
@@ -107,13 +107,13 @@ rblapack_zunmbr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmhr.c b/ext/zunmhr.c
index 72e4588..21fa7cb 100644
--- a/ext/zunmhr.c
+++ b/ext/zunmhr.c
@@ -101,13 +101,13 @@ rblapack_zunmhr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunml2.c b/ext/zunml2.c
index 2f913bb..322fb1c 100644
--- a/ext/zunml2.c
+++ b/ext/zunml2.c
@@ -82,7 +82,7 @@ rblapack_zunml2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmlq.c b/ext/zunmlq.c
index 6e826fc..ad059b6 100644
--- a/ext/zunmlq.c
+++ b/ext/zunmlq.c
@@ -93,13 +93,13 @@ rblapack_zunmlq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmql.c b/ext/zunmql.c
index fa774d4..fd5d8b5 100644
--- a/ext/zunmql.c
+++ b/ext/zunmql.c
@@ -97,13 +97,13 @@ rblapack_zunmql(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmqr.c b/ext/zunmqr.c
index f915207..945b954 100644
--- a/ext/zunmqr.c
+++ b/ext/zunmqr.c
@@ -97,13 +97,13 @@ rblapack_zunmqr(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmr2.c b/ext/zunmr2.c
index 2ae71c2..ad7bd81 100644
--- a/ext/zunmr2.c
+++ b/ext/zunmr2.c
@@ -82,7 +82,7 @@ rblapack_zunmr2(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmr3.c b/ext/zunmr3.c
index 2f60a92..8c46da6 100644
--- a/ext/zunmr3.c
+++ b/ext/zunmr3.c
@@ -86,7 +86,7 @@ rblapack_zunmr3(int argc, VALUE *argv, VALUE self){
     rblapack_a = na_change_type(rblapack_a, NA_DCOMPLEX);
   a = NA_PTR_TYPE(rblapack_a, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmrq.c b/ext/zunmrq.c
index cc7102a..7b2ca1f 100644
--- a/ext/zunmrq.c
+++ b/ext/zunmrq.c
@@ -93,13 +93,13 @@ rblapack_zunmrq(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmrz.c b/ext/zunmrz.c
index b318638..a700768 100644
--- a/ext/zunmrz.c
+++ b/ext/zunmrz.c
@@ -97,13 +97,13 @@ rblapack_zunmrz(int argc, VALUE *argv, VALUE self){
     lwork = NUM2INT(rblapack_lwork);
   }
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zunmtr.c b/ext/zunmtr.c
index 915d381..e637fc2 100644
--- a/ext/zunmtr.c
+++ b/ext/zunmtr.c
@@ -97,13 +97,13 @@ rblapack_zunmtr(int argc, VALUE *argv, VALUE self){
     rblapack_tau = na_change_type(rblapack_tau, NA_DCOMPLEX);
   tau = NA_PTR_TYPE(rblapack_tau, doublecomplex*);
   {
-    int shape[1];
+    na_shape_t shape[1];
     shape[0] = MAX(1,lwork);
     rblapack_work = na_make_object(NA_DCOMPLEX, 1, shape, cNArray);
   }
   work = NA_PTR_TYPE(rblapack_work, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zupgtr.c b/ext/zupgtr.c
index 7bf6d07..5aa6222 100644
--- a/ext/zupgtr.c
+++ b/ext/zupgtr.c
@@ -66,7 +66,7 @@ rblapack_zupgtr(int argc, VALUE *argv, VALUE self){
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   ldq = MAX(1,n);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldq;
     shape[1] = n;
     rblapack_q = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);
diff --git a/ext/zupmtr.c b/ext/zupmtr.c
index 3c1c88c..b759431 100644
--- a/ext/zupmtr.c
+++ b/ext/zupmtr.c
@@ -88,7 +88,7 @@ rblapack_zupmtr(int argc, VALUE *argv, VALUE self){
     rblapack_ap = na_change_type(rblapack_ap, NA_DCOMPLEX);
   ap = NA_PTR_TYPE(rblapack_ap, doublecomplex*);
   {
-    int shape[2];
+    na_shape_t shape[2];
     shape[0] = ldc;
     shape[1] = n;
     rblapack_c_out__ = na_make_object(NA_DCOMPLEX, 2, shape, cNArray);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-lapack.git



More information about the Pkg-ruby-extras-commits mailing list