From: raphael couturier Date: Fri, 17 Oct 2014 08:39:19 +0000 (+0200) Subject: 2 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/LiCO.git/commitdiff_plain/14807efe28fdcfae190436806be645680658c71c?ds=inline 2 --- diff --git a/IEEEfull.bib b/IEEEfull.bib new file mode 100644 index 0000000..8f07c8c --- /dev/null +++ b/IEEEfull.bib @@ -0,0 +1,419 @@ + +IEEEfull.bib +V1.12 (2007/01/11) +Copyright (c) 2002-2007 by Michael Shell +See: http://www.michaelshell.org/ +for current contact information. + +BibTeX bibliography string definitions of the FULL titles of +IEEE journals and magazines and online publications. + +This file is designed for bibliography styles that require +full-length titles and is not for use in bibliographies that +abbreviate titles. + +Support sites: +http://www.michaelshell.org/tex/ieeetran/ +http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ +and/or +http://www.ieee.org/ + +Special thanks to Laura Hyslop and ken Rawson of IEEE for their help +in obtaining the information needed to compile this file. Also, +Volker Kuhlmann and Moritz Borgmann kindly provided some corrections +and additions. + +************************************************************************* +Legal Notice: +This code is offered as-is without any warranty either expressed or +implied; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE! +User assumes all risk. +In no event shall IEEE or any contributor to this code be liable for +any damages or losses, including, but not limited to, incidental, +consequential, or any other damages, resulting from the use or misuse +of any information contained here. + +All comments are the opinions of their respective authors and are not +necessarily endorsed by the IEEE. + +This work is distributed under the LaTeX Project Public License (LPPL) +( http://www.latex-project.org/ ) version 1.3, and may be freely used, +distributed and modified. A copy of the LPPL, version 1.3, is included +in the base LaTeX documentation of all distributions of LaTeX released +2003/12/01 or later. +Retain all contribution notices and credits. +** Modified files should be clearly indicated as such, including ** +** renaming them and changing author support contact information. ** + +File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib, + IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst, + IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf +************************************************************************* + + +USAGE: + +\bibliographystyle{mybstfile} +\bibliography{IEEEfull,mybibfile} + +where the IEEE titles in the .bib database entries use the strings +defined here. e.g., + + + journal = IEEE_J_AC, + + +to yield "{IEEE} Transactions on Automatic Control" + + +WARNING: IEEE uses abbreviated journal titles in their bibliographies! +Because this file provides the full titles, you should NOT use this file +for work that is to be submitted to the IEEE. + +For IEEE work, you should use the abbreviated titles provided in the +companion file, IEEEabrv.bib. + + +** NOTES ** + + 1. Journals have been grouped according to subject in order to make it + easier to locate and extract the definitions for related journals - + as most works use references that are confined to a single topic. + Magazines are listed in straight alphabetical order. + + 2. String names are closely based on IEEE's own internal acronyms. + + 3. Older, out-of-print IEEE titles are included (but not including titles + dating prior to IEEE's formation from the IRE and AIEE in 1963). + + + + + + +IEEE Journals + + + +aerospace and military +@STRING{IEEE_J_AES = "{IEEE} Transactions on Aerospace and Electronic Systems"} +@STRING{IEEE_J_ANE = "{IEEE} Transactions on Aerospace and Navigational Electronics"} +@STRING{IEEE_J_ANNE = "{IEEE} Transactions on Aeronautical and Navigational Electronics"} +@STRING{IEEE_J_AS = "{IEEE} Transactions on Aerospace"} +@STRING{IEEE_J_AIRE = "{IEEE} Transactions on Airborne Electronics"} +@STRING{IEEE_J_MIL = "{IEEE} Transactions on Military Electronics"} + + + +autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Transactions on Intelligent Transportation Systems"} +@STRING{IEEE_J_VT = "{IEEE} Transactions on Vehicular Technology"} +@STRING{IEEE_J_VC = "{IEEE} Transactions on Vehicular Communications"} + + + +circuits, signals, systems, audio and controls +@STRING{IEEE_J_SPL = "{IEEE} Signal Processing Letters"} +@STRING{IEEE_J_ASSP = "{IEEE} Transactions on Acoustics, Speech, and Signal Processing"} +@STRING{IEEE_J_AU = "{IEEE} Transactions on Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Transactions on Audio and Electroacoustics"} +@STRING{IEEE_J_AC = "{IEEE} Transactions on Automatic Control"} +@STRING{IEEE_J_CAS = "{IEEE} Transactions on Circuits and Systems"} +@STRING{IEEE_J_CASVT = "{IEEE} Transactions on Circuits and Systems for Video Technology"} +@STRING{IEEE_J_CASI = "{IEEE} Transactions on Circuits and Systems---Part {I}: Fundamental Theory and Applications"} +@STRING{IEEE_J_CASII = "{IEEE} Transactions on Circuits and Systems---Part {II}: Analog and Digital Signal Processing"} +in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively. +@STRING{IEEE_J_CASI_RP = "{IEEE} Transactions on Circuits and Systems---Part {I}: Regular Papers"} +@STRING{IEEE_J_CASII_EB = "{IEEE} Transactions on Circuits and Systems---Part {II}: Express Briefs"} +@STRING{IEEE_J_CT = "{IEEE} Transactions on Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Transactions on Control Systems Technology"} +@STRING{IEEE_J_SP = "{IEEE} Transactions on Signal Processing"} +@STRING{IEEE_J_SU = "{IEEE} Transactions on Sonics and Ultrasonics"} +@STRING{IEEE_J_SAP = "{IEEE} Transactions on Speech and Audio Processing"} +@STRING{IEEE_J_UE = "{IEEE} Transactions on Ultrasonics Engineering"} +@STRING{IEEE_J_UFFC = "{IEEE} Transactions on Ultrasonics, Ferroelectrics, and Frequency Control"} + + + +communications +@STRING{IEEE_J_COML = "{IEEE} Communications Letters"} +@STRING{IEEE_J_JSAC = "{IEEE} Journal on Selected Areas in Communications"} +@STRING{IEEE_J_COM = "{IEEE} Transactions on Communications"} +@STRING{IEEE_J_COMT = "{IEEE} Transactions on Communication Technology"} +@STRING{IEEE_J_WCOM = "{IEEE} Transactions on Wireless Communications"} + + + +components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Transactions on Advanced Packaging"} +@STRING{IEEE_J_CHMT = "{IEEE} Transactions on Components, Hybrids and Manufacturing Technology"} +@STRING{IEEE_J_CPMTA = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {B}: Advanced Packaging"} +@STRING{IEEE_J_CPMTC = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {C}: Manufacturing"} +@STRING{IEEE_J_CAPT = "{IEEE} Transactions on Components and Packaging Technology"} +@STRING{IEEE_J_CAPTS = "{IEEE} Transactions on Components and Packaging Technologies"} +@STRING{IEEE_J_CPART = "{IEEE} Transactions on Component Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Transactions on Electronics Packaging Manufacturing"} +@STRING{IEEE_J_MFT = "{IEEE} Transactions on Manufacturing Technology"} +@STRING{IEEE_J_PHP = "{IEEE} Transactions on Parts, Hybrids and Packaging"} +@STRING{IEEE_J_PMP = "{IEEE} Transactions on Parts, Materials and Packaging"} + + + +CAD +@STRING{IEEE_J_TCAD = "{IEEE} Journal on Technology in Computer Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Transactions on Computer-Aided Design of Integrated Circuits and Systems"} + + + +coding, data, information, knowledge +@STRING{IEEE_J_IT = "{IEEE} Transactions on Information Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Transactions on Knowledge and Data Engineering"} + + + +computers, computation, networking and software +@STRING{IEEE_J_C = "{IEEE} Transactions on Computers"} +@STRING{IEEE_J_CAL = "{IEEE} Computer Architecture Letters"} +@STRING{IEEE_J_DSC = "{IEEE} Transactions on Dependable and Secure Computing"} +@STRING{IEEE_J_ECOMP = "{IEEE} Transactions on Electronic Computers"} +@STRING{IEEE_J_EVC = "{IEEE} Transactions on Evolutionary Computation"} +@STRING{IEEE_J_FUZZ = "{IEEE} Transactions on Fuzzy Systems"} +@STRING{IEEE_J_IFS = "{IEEE} Transactions on Information Forensics and Security"} +@STRING{IEEE_J_MC = "{IEEE} Transactions on Mobile Computing"} +@STRING{IEEE_J_NET = "{IEEE/ACM} Transactions on Networking"} +@STRING{IEEE_J_NN = "{IEEE} Transactions on Neural Networks"} +@STRING{IEEE_J_PDS = "{IEEE} Transactions on Parallel and Distributed Systems"} +@STRING{IEEE_J_SE = "{IEEE} Transactions on Software Engineering"} + + + +computer graphics, imaging, and multimedia +@STRING{IEEE_J_JDT = "{IEEE/OSA} Journal of Display Technology"} +@STRING{IEEE_J_IP = "{IEEE} Transactions on Image Processing"} +@STRING{IEEE_J_MM = "{IEEE} Transactions on Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Transactions on Visualization and Computer Graphics"} + + + +cybernetics, ergonomics, robots, man-machine, and automation +@STRING{IEEE_J_ASE = "{IEEE} Transactions on Automation Science and Engineering"} +@STRING{IEEE_J_JRA = "{IEEE} Journal of Robotics and Automation"} +@STRING{IEEE_J_HFE = "{IEEE} Transactions on Human Factors in Electronics"} +@STRING{IEEE_J_MMS = "{IEEE} Transactions on Man-Machine Systems"} +@STRING{IEEE_J_PAMI = "{IEEE} Transactions on Pattern Analysis and Machine Intelligence"} +in 1989 JRA became RA +in August 2004, RA split into ASE and RO +@STRING{IEEE_J_RA = "{IEEE} Transactions on Robotics and Automation"} +@STRING{IEEE_J_RO = "{IEEE} Transactions on Robotics"} +@STRING{IEEE_J_SMC = "{IEEE} Transactions on Systems, Man, and Cybernetics"} +@STRING{IEEE_J_SMCA = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {A}: Systems and Humans"} +@STRING{IEEE_J_SMCB = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {B}: Cybernetics"} +@STRING{IEEE_J_SMCC = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {C}: Applications and Reviews"} +@STRING{IEEE_J_SSC = "{IEEE} Transactions on Systems Science and Cybernetics"} + + + +earth, wind, fire and water +@STRING{IEEE_J_GE = "{IEEE} Transactions on Geoscience Electronics"} +@STRING{IEEE_J_GRS = "{IEEE} Transactions on Geoscience and Remote Sensing"} +@STRING{IEEE_J_GRSL = "{IEEE} Geoscience and Remote Sensing Letters"} +@STRING{IEEE_J_OE = "{IEEE} Journal of Oceanic Engineering"} + + + +education, engineering, history, IEEE, professional +@STRING{IEEE_J_CJECE = "Canadian Journal of Electrical and Computer Engineering"} +@STRING{IEEE_J_PROC = "Proceedings of the {IEEE}"} +@STRING{IEEE_J_EDU = "{IEEE} Transactions on Education"} +@STRING{IEEE_J_EM = "{IEEE} Transactions on Engineering Management"} +@STRING{IEEE_J_EWS = "{IEEE} Transactions on Engineering Writing and Speech"} +@STRING{IEEE_J_PC = "{IEEE} Transactions on Professional Communication"} + + + +electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas and Wireless Propagation Letters"} +@STRING{IEEE_J_MGWL = "{IEEE} Microwave and Guided Wave Letters"} +@STRING{IEEE_J_MWCL = "{IEEE} Microwave and Wireless Components Letters"} +@STRING{IEEE_J_AP = "{IEEE} Transactions on Antennas and Propagation"} +@STRING{IEEE_J_EMC = "{IEEE} Transactions on Electromagnetic Compatibility"} +@STRING{IEEE_J_MAG = "{IEEE} Transactions on Magnetics"} +@STRING{IEEE_J_MTT = "{IEEE} Transactions on Microwave Theory and Techniques"} +@STRING{IEEE_J_RFI = "{IEEE} Transactions on Radio Frequency Interference"} +@STRING{IEEE_J_TJMJ = "{IEEE} Translation Journal on Magnetics in Japan"} + + + +energy and power +@STRING{IEEE_J_EC = "{IEEE} Transactions on Energy Conversion"} +@STRING{IEEE_J_PEL = "{IEEE} Power Electronics Letters"} +@STRING{IEEE_J_PWRAS = "{IEEE} Transactions on Power Apparatus and Systems"} +@STRING{IEEE_J_PWRD = "{IEEE} Transactions on Power Delivery"} +@STRING{IEEE_J_PWRE = "{IEEE} Transactions on Power Electronics"} +@STRING{IEEE_J_PWRS = "{IEEE} Transactions on Power Systems"} + + + +industrial, commercial and consumer +@STRING{IEEE_J_APPIND = "{IEEE} Transactions on Applications and Industry"} +@STRING{IEEE_J_BC = "{IEEE} Transactions on Broadcasting"} +@STRING{IEEE_J_BCTV = "{IEEE} Transactions on Broadcast and Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Transactions on Consumer Electronics"} +@STRING{IEEE_J_IE = "{IEEE} Transactions on Industrial Electronics"} +@STRING{IEEE_J_IECI = "{IEEE} Transactions on Industrial Electronics and Control Instrumentation"} +@STRING{IEEE_J_IA = "{IEEE} Transactions on Industry Applications"} +@STRING{IEEE_J_IGA = "{IEEE} Transactions on Industry and General Applications"} +@STRING{IEEE_J_IINF = "{IEEE} Transactions on Industrial Informatics"} +@STRING{IEEE_J_PSE = "{IEEE} Journal of Product Safety Engineering"} + + + +instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Transactions on Instrumentation and Measurement"} + + + +insulation and materials +@STRING{IEEE_J_JEM = "{IEEE/TMS} Journal of Electronic Materials"} +@STRING{IEEE_J_DEI = "{IEEE} Transactions on Dielectrics and Electrical Insulation"} +@STRING{IEEE_J_EI = "{IEEE} Transactions on Electrical Insulation"} + + + +mechanical +@STRING{IEEE_J_MECH = "{IEEE/ASME} Transactions on Mechatronics"} +@STRING{IEEE_J_MEMS = "{IEEE/ASME} Journal of Microelectromechanical Systems"} + + + +medical and biological +@STRING{IEEE_J_BME = "{IEEE} Transactions on Biomedical Engineering"} +Note: The B-ME journal later dropped the hyphen and became the BME. +@STRING{IEEE_J_B-ME = "{IEEE} Transactions on Bio-Medical Engineering"} +@STRING{IEEE_J_BMELC = "{IEEE} Transactions on Bio-Medical Electronics"} +@STRING{IEEE_J_CBB = "{IEEE/ACM} Transactions on Computational Biology and Bioinformatics"} +@STRING{IEEE_J_ITBM = "{IEEE} Transactions on Information Technology in Biomedicine"} +@STRING{IEEE_J_ME = "{IEEE} Transactions on Medical Electronics"} +@STRING{IEEE_J_MI = "{IEEE} Transactions on Medical Imaging"} +@STRING{IEEE_J_NB = "{IEEE} Transactions on NanoBioscience"} +@STRING{IEEE_J_NSRE = "{IEEE} Transactions on Neural Systems and Rehabilitation Engineering"} +@STRING{IEEE_J_RE = "{IEEE} Transactions on Rehabilitation Engineering"} + + + +optics, lightwave and photonics +@STRING{IEEE_J_PTL = "{IEEE} Photonics Technology Letters"} +@STRING{IEEE_J_JLT = "{IEEE/OSA} Journal of Lightwave Technology"} + + + +physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Letters"} +@STRING{IEEE_J_JQE = "{IEEE} Journal of Quantum Electronics"} +@STRING{IEEE_J_JSTQE = "{IEEE} Journal of Selected Topics in Quantum Electronics"} +@STRING{IEEE_J_ED = "{IEEE} Transactions on Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Transactions on Nanotechnology"} +@STRING{IEEE_J_NS = "{IEEE} Transactions on Nuclear Science"} +@STRING{IEEE_J_PS = "{IEEE} Transactions on Plasma Science"} + + + +reliability +@STRING{IEEE_J_DMR = "{IEEE} Transactions on Device and Materials Reliability"} +@STRING{IEEE_J_R = "{IEEE} Transactions on Reliability"} + + + +semiconductors, superconductors, electrochemical and solid state +@STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochemical and Solid-State Letters"} +@STRING{IEEE_J_JSSC = "{IEEE} Journal of Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Transactions on Applied Superconductivity"} +@STRING{IEEE_J_SM = "{IEEE} Transactions on Semiconductor Manufacturing"} + + + +sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors Journal"} + + + +VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Transactions on Very Large Scale Integration ({VLSI}) Systems"} + + + + + + +IEEE Magazines + + + +@STRING{IEEE_M_AES = "{IEEE} Aerospace and Electronics Systems Magazine"} +@STRING{IEEE_M_HIST = "{IEEE} Annals of the History of Computing"} +@STRING{IEEE_M_AP = "{IEEE} Antennas and Propagation Magazine"} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Magazine"} +@STRING{IEEE_M_CD = "{IEEE} Circuits and Devices Magazine"} +@STRING{IEEE_M_CAS = "{IEEE} Circuits and Systems Magazine"} +@STRING{IEEE_M_COM = "{IEEE} Communications Magazine"} +@STRING{IEEE_M_COMSOC = "{IEEE} Communications Society Magazine"} +@STRING{IEEE_M_CIM = "{IEEE} Computational Intelligence Magazine"} +CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Computing in Science and Engineering"} +@STRING{IEEE_M_CSEM = "{IEEE} Computational Science and Engineering Magazine"} +@STRING{IEEE_M_C = "{IEEE} Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Computer Applications in Power"} +@STRING{IEEE_M_CGA = "{IEEE} Computer Graphics and Applications"} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Systems Magazine"} +@STRING{IEEE_M_DTC = "{IEEE} Design and Test of Computers"} +@STRING{IEEE_M_EI = "{IEEE} Electrical Insulation Magazine"} +@STRING{IEEE_M_ETR = "{IEEE} ElectroTechnology Review"} +@STRING{IEEE_M_EMB = "{IEEE} Engineering in Medicine and Biology Magazine"} +@STRING{IEEE_M_EMR = "{IEEE} Engineering Management Review"} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_IA = "{IEEE} Industry Applications Magazine"} +@STRING{IEEE_M_IM = "{IEEE} Instrumentation and Measurement Magazine"} +@STRING{IEEE_M_IS = "{IEEE} Intelligent Systems"} +@STRING{IEEE_M_IC = "{IEEE} Internet Computing"} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Professional"} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microwave Magazine"} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NET = "{IEEE} Network"} +@STRING{IEEE_M_PCOM = "{IEEE} Personal Communications Magazine"} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power and Energy Magazine"} +@STRING{IEEE_M_PER = "{IEEE} Power Engineering Review"} +@STRING{IEEE_M_PVC = "{IEEE} Pervasive Computing"} +@STRING{IEEE_M_RA = "{IEEE} Robotics and Automation Magazine"} +@STRING{IEEE_M_SAP = "{IEEE} Security and Privacy"} +@STRING{IEEE_M_SP = "{IEEE} Signal Processing Magazine"} +@STRING{IEEE_M_S = "{IEEE} Software"} +@STRING{IEEE_M_SPECT = "{IEEE} Spectrum"} +@STRING{IEEE_M_TS = "{IEEE} Technology and Society Magazine"} +@STRING{IEEE_M_VT = "{IEEE} Vehicular Technology Magazine"} +@STRING{IEEE_M_WC = "{IEEE} Wireless Communications Magazine"} +@STRING{IEEE_M_TODAY = "Today's Engineer"} + + + + + + +IEEE Online Publications + + + +@STRING{IEEE_O_CSTO = "{IEEE} Communications Surveys and Tutorials"} +@STRING{IEEE_O_DSO = "{IEEE} Distributed Systems Online"} + + + + + +-- +EOF diff --git a/IEEEtran.bst b/IEEEtran.bst new file mode 100644 index 0000000..53fbc03 --- /dev/null +++ b/IEEEtran.bst @@ -0,0 +1,2417 @@ +%% +%% IEEEtran.bst +%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted) +%% Version 1.12 (2007/01/11) +%% +%% Copyright (c) 2003-2007 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ +%% and/or +%% http://www.ieee.org/ +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%% +%% File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib, +%% IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst, +%% IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf +%%************************************************************************* +% +% +% Changelog: +% +% 1.00 (2002/08/13) Initial release +% +% 1.10 (2002/09/27) +% 1. Corrected minor bug for improperly formed warning message when a +% book was not given a title. Thanks to Ming Kin Lai for reporting this. +% 2. Added support for CTLname_format_string and CTLname_latex_cmd fields +% in the BST control entry type. +% +% 1.11 (2003/04/02) +% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks +% to Ming Kin Lai for reporting this. +% +% 1.12 (2007/01/11) +% 1. Fixed bug with unwanted comma before "et al." when an entry contained +% more than two author names. Thanks to Pallav Gupta for reporting this. +% 2. Fixed bug with anomalous closing quote in tech reports that have a +% type, but without a number or address. Thanks to Mehrdad Mirreza for +% reporting this. +% 3. Use braces in \providecommand in begin.bib to better support +% latex2html. TeX style length assignments OK with recent versions +% of latex2html - 1.71 (2002/2/1) or later is strongly recommended. +% Use of the language field still causes trouble with latex2html. +% Thanks to Federico Beffa for reporting this. +% 4. Added IEEEtran.bst ID and version comment string to .bbl output. +% 5. Provide a \BIBdecl hook that allows the user to execute commands +% just prior to the first entry. +% 6. Use default urlstyle (is using url.sty) of "same" rather than rm to +% better work with a wider variety of bibliography styles. +% 7. Changed month abbreviations from Sept., July and June to Sep., Jul., +% and Jun., respectively, as IEEE now does. Thanks to Moritz Borgmann +% for reporting this. +% 8. Control entry types should not be considered when calculating longest +% label width. +% 9. Added alias www for electronic/online. +% 10. Added CTLname_url_prefix control entry type. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +%\def\@bstctlcite[#1]#2{\@bsphack +% \@for\@citeb:=#2\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% The default URL prefix. +FUNCTION {default.name.url.prefix}{ "[Online]. Available:" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.12" } +FUNCTION{bst.file.date} { "2007/01/11" } +FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtran.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + CTLname_url_prefix + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd + name.url.prefix} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := + default.name.url.prefix 'name.url.prefix := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% IEEE's rather unusual bibliography style. For example, IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +FUNCTION {bibinfo.check} +{ swap$ duplicate$ missing$ + { pop$ pop$ "" } + { duplicate$ empty$ + { swap$ pop$ } + { swap$ pop$ } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ duplicate$ missing$ + { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } + { duplicate$ empty$ + { swap$ "empty " swap$ * " in " * cite$ * warning$ } + { swap$ pop$ } + if$ + } + if$ +} + + +% IEEE separates large numbers with more than 4 digits into groups of +% three. IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% least significant digit always determines the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" * + write$ newline$ + preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@samestyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand{\BIBforeignlanguage}[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ + "\providecommand{\BIBdecl}{\relax}" + write$ newline$ + "\BIBdecl" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + { skip$ } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " " * bbl.etal emphasize * } + { numnames #2 > + { "," * } + { skip$ } + if$ + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + this.to.prev.status + this.status.std + cap.status.std + type duplicate$ empty$ + { pop$ + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + name.url.prefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + CTLname_url_prefix + missing$ + { skip$ } + { CTLname_url_prefix + 'name.url.prefix := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {www}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/LiCO_Journal.bib b/LiCO_Journal.bib new file mode 100644 index 0000000..1275c2d --- /dev/null +++ b/LiCO_Journal.bib @@ -0,0 +1,1016 @@ +\iffalse + +@INPROCEEDINGS{Moore99, + AUTHOR = "R. Moore and J. Lopes", + TITLE = "Paper templates", + BOOKTITLE = "TEMPLATE'06, 1st International Conference on Template Production", + YEAR = "1999", + publisher = "SCITEPRESS", + file = F +} + +@BOOK{Smith98, + AUTHOR = "J. Smith", + TITLE = "The Book", + PUBLISHER = "The publishing company", + YEAR = "1998", + address = "London", + edition = "2nd", + file = F +} + + +@inproceedings{vashistha2007energy, + title={Energy efficient area monitoring using information coverage in wireless sensor networks}, + author={Vashistha, Sumit and Azad, Amar Prakash and Chockalingam, Ananthanarayanan}, + booktitle={World of Wireless, Mobile and Multimedia Networks, 2007. WoWMoM 2007. IEEE International Symposium on a}, + pages={1--10}, + year={2007}, + organization={IEEE} +} + + +@ARTICLE{Torkestani, + author = "J. A. Torkestani", + title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ", + journal = {Ad Hoc Networks}, + volume = {11}, + number = {6}, + pages = {1655-1666}, + year = {2013}, + } + +@ARTICLE{Zhang, + author = "L. Zhang and Q. Zhu and J. Wang", + title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ", + journal = {JOURNAL OF NETWORKS}, + volume = {8}, + number = {3}, + pages = {616-622}, + year = {2013}, + } + +@ARTICLE{pc10, + author = "T.V. Padmavathy and M. Chitra", + title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm", + JOURNAL = {Int. J. of Communications, Network and System Sciences}, + VOLUME = {3}, + NUMBER = {1}, +PAGES = {98-106}, +YEAR = {2010}, + } + + + +@ARTICLE{Zhixin, + author = "Z. Liu and Q. Zheng and L. Xue and X. Guan", + title = "A distributed energy-efficient clustering algorithm with improved coverage in +wireless sensor networks", + JOURNAL = {Future Generation Computer Systems}, + VOLUME = {28}, + NUMBER = {5}, + PAGES = {780-790}, + YEAR = {2012}, + } + +@ARTICLE{Bang, + author = "B. Wang and H. B. Lim and D. Ma ", + title = "A coverage-aware clustering protocol for wireless sensor networks", + JOURNAL = {Computer Networks}, + VOLUME = {56}, + NUMBER = {5}, + PAGES = {1599-1611}, + YEAR = {2012}, + } + + + +@book{Akyildiz02, + author = {I. F. Akyildiz and M. C. Vuran}, + title = {Wireless Sensor Networks}, + publisher = {John Wiley and Sons Ltd.}, + year = {2010}, +} + +@book{Sudip03, + author = {S. Misra and I. Woungang and S. C. Misra}, + title = {Guide to Wireless Sensor Networks}, + publisher = {Springer-Verlag London Limited}, + year = {2009}, +} + +@book{Nayak04, + author = {A. Nayak and I. Stojmenovic}, + title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication}, + publisher = {John Wiley and Sons, Inc}, + year = {2010}, +} + + + +@ARTICLE{Huang:2003:CPW:941350.941367, + author = "C.-F. HUANG and Y.-C. TSENG", + title = "The Coverage Problem in a Wireless Sensor Network", + JOURNAL = {Mobile Networks and Applications}, + VOLUME = {10}, + NUMBER = {4}, + PAGES = {519-528}, + YEAR = {2005}, + } + + +@ARTICLE{Zhang05, + author = {H. Zhang and J. C. Hou}, + title = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks}, + journal = {Ad Hoc {\&} Sensor Wireless Networks}, + volume = {1}, + number = {1-2}, + year = {2005}, + +} + +@ARTICLE{HeinzelmanCB02, + author = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan}, + title = {An application-specific protocol architecture for wireless microsensor networks}, + journal = {IEEE Transactions on Wireless Communications}, + volume = {1}, + number = {4}, + pages = {660-670}, + year = {2002}, +} + + +@inproceedings{pedraza2006, + author = {F. Pedraza and A. L. Medaglia and A. Garcia}, + title = {Efficient coverage algorithms for wireless sensor networks}, + booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium}, + pages = {78-83}, + YEAR = {2006}, +} + +@PhDThesis{chin2007, +author = {C. T. Vu}, +title = {DISTRIBUTED ENERGY-EFFICIENT SOLUTIONS FOR AREA COVERAGE PROBLEMS IN WIRELESS SENSOR NETWORKS}, +school = {Georgia State University}, +year = {2009}, +} + +@ARTICLE{varga, +author = {A. Varga}, +title = {OMNeT++ Discrete Event Simulation System}, +journal = {Available: http://www.omnetpp.org}, +year = {2003}, +} + + +@ARTICLE{die09, + author = {Isabel Dietrich and + Falko Dressler}, + title = {On the lifetime of wireless sensor networks}, + journal = {TOSN}, + volume = {5}, + number = {1}, + year = {2009}, + ee = {http://doi.acm.org/10.1145/1464420.1464425}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} + + + +@ARTICLE{mulligan2010coverage, + title={Coverage in Wireless Sensor Networks: A Survey.}, + author={Mulligan, Raymond and Ammari, Habib M}, + journal={Network Protocols \& Algorithms}, + volume={2}, + number={2}, + year={2010} +} + + +@phdthesis{vu2009distributed, + title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks}, + author={Vu, Chinh Trung}, + year={2009}, + school={GEORGIA STATE UNIVERSITY} +} + + +@ARTICLE{raghunathan2002energy, + title={Energy-aware wireless microsensor networks}, + author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B}, + journal={Signal Processing Magazine, IEEE}, + volume={19}, + number={2}, + pages={40--50}, + year={2002}, + publisher={IEEE} +} + +@ARTICLE{ChinhVu, +author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li}, +title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks}, +journal ={MILCOM}, +volume = {0}, +isbn = {1-4244-0617-X}, +year = {2006}, +pages = {1-7}, +doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146}, +publisher = {IEEE Computer Society}, +address = {Los Alamitos, CA, USA}, +} + + +@ARTICLE{ghosh2008coverage, + title={Coverage and connectivity issues in wireless sensor networks: A survey}, + author={Ghosh, Amitabha and Das, Sajal K}, + journal={Pervasive and Mobile Computing}, + volume={4}, + number={3}, + pages={303--334}, + year={2008}, + publisher={Elsevier} +} + + + +@ARTICLE{yang2014novel, +author={Changlin Yang and Kwan-Wu Chin}, +journal={Communications Letters, IEEE}, +title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, +year={2014}, +month={January}, +volume={18}, +number={1}, +pages={118-121}, +keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, +doi={10.1109/LCOMM.2013.111513.132436}, +ISSN={1089-7798},} + +@ARTICLE{HeShibo, +author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, +journal={Wireless Communications, IEEE Transactions on}, +title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, +year={2014}, +month={February}, +volume={13}, +number={2}, +pages={724-735}, +keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, +doi={10.1109/TWC.2013.121813.130198}, +ISSN={1536-1276}, +} + + + +@inproceedings{Zorbas2007, + author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris}, + title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks}, + booktitle = {Proceedings of the 13th European Wireless Conference}, + series = {EW'07}, + year = {2007}, + location = {Paris, France}, + +} + +@ARTICLE{zorbas2010solving, + title={Solving coverage problems in wireless sensor networks using cover sets}, + author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos}, + journal={Ad Hoc Networks}, + volume={8}, + number={4}, + pages={400-415}, + year={2010}, + publisher={Elsevier}, +} + +@INPROCEEDINGS{Slijepcevic01powerefficient, + author = {S. Slijepcevic and M. Potkonjak}, + title = {Power Efficient Organization of Wireless Sensor Networks}, + booktitle = {IEEE International conference on Communications}, + year = {2001}, + pages = {472-476} +} + +@ARTICLE{cardei2006energy, + title={Energy-efficient coverage problems in wireless ad-hoc sensor networks}, + author={Cardei, Mihaela and Wu, Jie}, + journal={Computer communications}, + volume={29}, + number={4}, + pages={413-420}, + year={2006}, + publisher={Elsevier} +} + +@inproceedings{cardei2005energy, + title={Energy-efficient target coverage in wireless sensor networks}, + author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili}, + booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE}, + volume={3}, + pages={1976-1984}, + year={2005}, + organization={IEEE} +} + +@ARTICLE{cardei2005improving, + title={Improving wireless sensor network lifetime through power aware organization}, + author={Cardei, Mihaela and Du, Ding-Zhu}, + journal={Wireless Networks}, + volume={11}, + number={3}, + pages={333-340}, + year={2005}, + publisher={Springer-Verlag New York, Inc.} +} + +@inproceedings{abrams2004set, + title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks}, + author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge}, + booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks}, + pages={424-432}, + year={2004}, + organization={ACM} +} + +@ARTICLE{pujari2011high, + title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.}, + author={Pujari, Arun K}, + journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing}, + volume={2}, + number={1}, + year={2011} +} + +@INPROCEEDINGS{berman04, + author = {P. Berman and G. Calinescu}, + title = {Power Efficient Monitoring Management in Sensor Networks}, + booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)}, + year = {2004}, + pages = {2329--2334} +} + +@inproceedings{Gallais06, + author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan}, + title = {Localized Sensor Area Coverage with Low Communication Overhead}, + booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications}, + year = {2006}, + pages = {328-337}, + +} + +@inproceedings{Tian02, + author = {Tian, Di and Georganas, Nicolas D.}, + title = {A coverage-preserving node scheduling scheme for large wireless sensor networks}, + booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications}, + series = {WSNA '02}, + year = {2002}, + pages = {32-41}, + publisher = {ACM}, +} + +@inproceedings{Ye03, + author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia}, + title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks}, + booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems}, + series = {ICDCS'03}, + year = {2003}, + pages = {28-37}, +} + + +@INPROCEEDINGS{Berman05efficientenergy, + author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky}, + title = {Efficient energy management in sensor networks}, + booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers}, + year = {2005}, + publisher = {Nova Science Publisher} +} + +@inproceedings{lu2003coverage, + title={Coverage-aware self-scheduling in sensor networks}, + author={Lu, Jun and Suda, Tatsuya}, + booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on}, + pages={117--123}, + year={2003}, + organization={IEEE} +} + +@incollection{prasad2007distributed, + title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets}, + author={Prasad, Sushil K and Dhawan, Akshaye}, + booktitle={High Performance Computing--HiPC 2007}, + pages={381-392}, + year={2007}, + publisher={Springer} +} + +@inproceedings{cardei2005maximum, + title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges}, + author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O}, + booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on}, + volume={3}, + pages={438--445}, + year={2005}, + organization={IEEE} +} + +@inproceedings{garg98, + author = {Garg, Naveen and Koenemann, Jochen}, + title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.}, + booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science}, + series = {FOCS '98}, + year = {1998}, + pages = {300-309}, +} + +@article{wang2010clique, + title={A clique base node scheduling method for wireless sensor networks}, + author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo}, + journal={Journal of Network and Computer Applications}, + volume={33}, + number={4}, + pages={383--396}, + year={2010}, + publisher={Elsevier} +} + +@article{yardibi2010distributed, + title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage}, + author={Yardibi, Tarik and Karasan, Ezhan}, + journal={Wireless Networks}, + volume={16}, + number={1}, + pages={213--225}, + year={2010}, + publisher={Springer} +} + +@article{conti2014mobile, + title={Mobile ad hoc networking: milestones, challenges, and new research directions}, + author={Conti, Marco and Giordano, Silvia}, + journal={Communications Magazine, IEEE}, + volume={52}, + number={1}, + pages={85--96}, + year={2014}, + publisher={IEEE} +} + +@inproceedings{idrees2014coverage, + title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks}, + author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l}, + booktitle={ICN 2014, The Thirteenth International Conference on Networks}, + pages={49--54}, + year={2014} +} + +@inproceedings{xu2001geography, + title={Geography-informed energy conservation for ad hoc routing}, + author={Xu, Ya and Heidemann, John and Estrin, Deborah}, + booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking}, + pages={70--84}, + year={2001}, + organization={ACM} +} + +@article{zhou2009variable, + title={Variable radii connected sensor cover in sensor networks}, + author={Zhou, Zongheng and Das, Samir R and Gupta, Himanshu}, + journal={ACM Transactions on Sensor Networks (TOSN)}, + volume={5}, + number={1}, + pages={8}, + year={2009}, + publisher={ACM} +} + +@article{wang2009parallel, + title={Parallel energy-efficient coverage optimization with maximum entropy clustering in wireless sensor networks}, + author={Wang, Xue and Ma, Junjie and Wang, Sheng}, + journal={Journal of Parallel and Distributed Computing}, + volume={69}, + number={10}, + pages={838--847}, + year={2009}, + publisher={Elsevier} +} + +@article{yan2008design, + title={Design and optimization of distributed sensing coverage in wireless sensor networks}, + author={Yan, Ting and Gu, Yu and He, Tian and Stankovic, John A}, + journal={ACM Transactions on Embedded Computing Systems (TECS)}, + volume={7}, + number={3}, + pages={33}, + year={2008}, + publisher={ACM} +} + +@article{he2012leveraging, + title={Leveraging prediction to improve the coverage of wireless sensor networks}, + author={He, Shibo and Chen, Jiming and Li, Xu and Shen, Xuemin and Sun, Youxian}, + journal={Parallel and Distributed Systems, IEEE Transactions on}, + volume={23}, + number={4}, + pages={701-712}, + year={2012}, + publisher={IEEE} +} + +@article{esnaashari2010learning, + title={A learning automata based scheduling solution to the dynamic point coverage problem in wireless sensor networks}, + author={Esnaashari, Mehdi and Meybodi, Mohammad Reza}, + journal={Computer Networks}, + volume={54}, + number={14}, + pages={2410--2438}, + year={2010}, + publisher={Elsevier} +} + + +@ARTICLE{Misra, + author = "S. Misra and M. P. Kumar and M. S. Obaidat", + title = "Connectivity preserving localized coverage algorithm for area monitoring using +wireless sensor networks ", + JOURNAL = {Computer Communications}, + VOLUME = {34}, + NUMBER = {12}, + PAGES = {1484-1496}, + YEAR = {2011}, +} + + + + +@article{rizvi2012a1, + title={A1: An energy efficient topology control algorithm for connected area coverage in wireless sensor networks}, + author={Rizvi, Sajjad and Qureshi, Hassaan Khaliq and Ali Khayam, Syed and Rakocevic, Veselin and Rajarajan, Muttukrishnan}, + journal={Journal of Network and Computer Applications}, + volume={35}, + number={2}, + pages={597--605}, + year={2012}, + publisher={Elsevier} +} + +@article{tran2009novel, + title={A novel gossip-based sensing coverage algorithm for dense wireless sensor networks}, + author={Tran-Quang, Vinh and Miyoshi, Takumi}, + journal={Computer Networks}, + volume={53}, + number={13}, + pages={2275--2287}, + year={2009}, + publisher={Elsevier} +} + +@ARTICLE{wang2011coverage, + title={Coverage problems in sensor networks: A survey}, + author={Wang, Bang}, + journal={ACM Computing Surveys (CSUR)}, + volume={43}, + number={4}, + pages={32}, + year={2011}, + publisher={ACM} +} + + +@article{luo2014parameterized, + title={Parameterized complexity of max-lifetime target coverage in wireless sensor networks}, + author={Luo, Weizhong and Wang, Jianxin and Guo, Jiong and Chen, Jianer}, + journal={Theoretical Computer Science}, + volume={518}, + pages={32--41}, + year={2014}, + publisher={Elsevier} +} + +@article{jarray2013lagrangean, + title={A Lagrangean-based heuristics for the target covering problem in wireless sensor network}, + author={Jarray, Fethi}, + journal={Applied Mathematical Modelling}, + volume={37}, + number={10}, + pages={6780--6785}, + year={2013}, + publisher={Elsevier} +} + +@article{naderan2013sensing, + title={Sensing task assignment via sensor selection for maximum target coverage in WSNs}, + author={Naderan, Marjan and Dehghan, Mehdi and Pedram, Hossein}, + journal={Journal of Network and Computer Applications}, + volume={36}, + number={1}, + pages={262--273}, + year={2013}, + publisher={Elsevier} +} + +@article{erdelj2013multiple, + title={Multiple point of interest discovery and coverage with mobile wireless sensors}, + author={Erdelj, Milan and Loscri, Valeria and Natalizio, Enrico and Razafindralambo, Tahiry}, + journal={Ad Hoc Networks}, + volume={11}, + number={8}, + pages={2288--2300}, + year={2013}, + publisher={Elsevier} +} + +@article{tian2014distributed, + title={Distributed Multitarget Probabilistic Coverage Control Algorithm for Wireless Sensor Networks}, + author={Tian, Ying and Ou, Yang and Hamid, Reza Karimi and Liu, Yan Tao and Han, Jian Qun}, + journal={Mathematical Problems in Engineering}, + volume={2014}, + pages={1--8}, + year={2014}, + publisher={Hindawi Publishing Corporation} +} + +@article{castano2013column, + title={A column generation approach to extend lifetime in wireless sensor networks with coverage and connectivity constraints}, + author={Casta{\~n}o, Fabian and Rossi, Andr{\'e} and Sevaux, Marc and Velasco, Nubia}, + journal={Computers \& Operations Research}, + year={2013}, + publisher={Elsevier} +} + +@article{yu2013cwsc, + title={CWSC: Connected< i> k-coverage working sets construction algorithm in wireless sensor networks}, + author={Yu, Jiguo and Deng, Xiu and Yu, Dongxiao and Wang, Guanghui and Gu, Xin}, + journal={AEU-International Journal of Electronics and Communications}, + volume={67}, + number={11}, + pages={937--946}, + year={2013}, + publisher={Elsevier} +} + +@article{cheng2014achieving, + title={Achieving Asymmetric Sensing Coverage for Duty Cycled Wireless Sensor Networks}, + author={Cheng, Long and He, Tian and Niu, Jianwei and Du, David HC}, + journal={IEEE Transactions on Parallel and Distributed Systems}, + pages={1--11}, + year={2014}, + publisher={IEEE} +} + +@article{yang2013energy, + title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks}, + author={Yang, Qianqian and He, Shibo and Li, Junkun and Chen, Jiming and Sun, Youxian}, + journal={IEEE Transactions on Vehicular Technology}, + year={2013}, + publisher={IEEE} +} + +@inproceedings{kim2013maximum, + title={Maximum lifetime of reinforced barrier-coverage in Wireless Sensor Networks}, + author={Kim, Hyunbum and Cobb, Jorge A}, + booktitle={Networks (ICON), 2013 19th IEEE International Conference on}, + pages={1--6}, + year={2013}, + organization={IEEE} +} + + + +@inproceedings{chang2012joint, + title={Joint energy-balanced and full-coverage mechanism using sensing range control for maximizing network lifetime in WSNs}, + author={Chang, Chih-Yung and Yu, Gwo-Jong and Lin, Chih-Yu and Wang, Tzu-Lin}, + booktitle={Ubiquitous and Future Networks (ICUFN), 2012 Fourth International Conference on}, + pages={34--39}, + year={2012}, + organization={IEEE} +} + + + +@inproceedings{al2013energy, + title={Energy-efficient k-coverage scheduling algorithm for sensor networks with adjustable sensing range}, + author={Al-Shalabi, Ahmed Abdullah and Manaf, Mazani}, + booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on}, + pages={316--321}, + year={2013}, + organization={IEEE} +} + +@inproceedings{kim2012sleep, + title={On sleep-wakeup scheduling of non-penetrable barrier-coverage of wireless sensors}, + author={Kim, Donghyun and Kim, Jiwoong and Li, Deying and Kwon, Sung-Sik and Tokuta, Alade O}, + booktitle={Global Communications Conference (GLOBECOM), 2012 IEEE}, + pages={321--327}, + year={2012}, + organization={IEEE} +} + +@article{li2013survey, + title={A Survey on Topology Control in Wireless Sensor Networks: Taxonomy, Comparative Study, and Open Issues}, + author={Li, Mo and Vasilakos, Athanasios V}, + journal={Proceedings of the IEEE}, + volume={101}, + number={12}, + year={2013} +} + + +@inproceedings{wang2007energy, + title={Energy efficient coverage with variable sensing radii in wireless sensor networks}, + author={Wang, Jiong and Medidi, Sirisha}, + booktitle={Wireless and Mobile Computing, Networking and Communications, 2007. WiMOB 2007. Third IEEE International Conference on}, + pages={61--61}, + year={2007}, + organization={IEEE} +} + +@inproceedings{vu2009delaunay, + title={Delaunay-triangulation based complete coverage in wireless sensor networks}, + author={Vu, Chinh T and Li, Yingshu}, + booktitle={Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on}, + pages={1--5}, + year={2009}, + organization={IEEE} +} + +@article{yang2014energy, +author={Yang, Q. and He, S. and Li, J. and Chen, J. and Sun, Y.}, +journal={Vehicular Technology, IEEE Transactions on}, +title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks}, +volume={PP}, +number={99}, +pages={1-1}, +year={2014}, + +} + +@inproceedings{ling2009energy, + title={Energy efficient adaptive sensing for dynamic coverage in wireless sensor networks}, + author={Ling, Hui and Znati, Taieb}, + booktitle={Wireless Communications and Networking Conference, 2009. WCNC 2009. IEEE}, + pages={1--6}, + year={2009}, + organization={IEEE} +} + +@inproceedings{diongue2013alarm, + title={ALARM: An energy aware sleep scheduling algorithm for lifetime maximization in wireless sensor networks}, + author={Diongue, Dame and Thiare, Ousmane}, + booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on}, + pages={74--79}, + year={2013}, + organization={IEEE} +} + + +@INPROCEEDINGS{shi2009, +author={Qinghua Shi and Xiaozhen Wei and Yu Peng and Shiqian Li}, +booktitle={Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on}, +title={An Energy-Efficient Central-Scheduling Scheme in Wireless Sensor Networks}, +year={2009}, +month={Jan}, +pages={1-4}, +} + +@inproceedings{qu2013distributed, + title={A distributed area coverage algorithm for maintenance of randomly distributed sensors with adjustable sensing range}, + author={Qu, Yipeng and Georgakopoulos, Stavros V}, + booktitle={Global Communications Conference (GLOBECOM), 2013 IEEE}, + pages={286--291}, + year={2013}, + organization={IEEE} +} + +@inproceedings{xin2009area, + title={The area coverage algorithm to maintain connectivity for WSN}, + author={Xin, He and Ke, Yin and Xiaolin, Gui}, + booktitle={Computer and Information Technology, 2009. CIT'09. Ninth IEEE International Conference on}, + volume={2}, + pages={81--86}, + year={2009}, + organization={IEEE} +} + +\fi + +@article{huang2005coverage, + title={The coverage problem in a wireless sensor network}, + author={Huang, Chi-Fu and Tseng, Yu-Chee}, + journal={Mobile Networks and Applications}, + volume={10}, + number={4}, + pages={519--528}, + year={2005}, + publisher={Springer-Verlag New York, Inc.} +} + + +@techreport{Idrees2, + author = {Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l}, + institution = {University of Franche-Comte - FEMTO-ST Institute, DISC Research Department}, + title = {Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks}, + number = {DISC2014-X}, + month = {Octobre}, + year = {2014} +} + +@article{puccinelli2005wireless, + title={Wireless sensor networks: applications and challenges of ubiquitous sensing}, + author={Puccinelli, Daniele and Haenggi, Martin}, + journal={Circuits and Systems Magazine, IEEE}, + volume={5}, + number={3}, + pages={19--31}, + year={2005}, + publisher={IEEE} +} + +@article{akyildiz2002wireless, + title={Wireless sensor networks: a survey}, + author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal}, + journal={Computer networks}, + volume={38}, + number={4}, + pages={393--422}, + year={2002}, + publisher={Elsevier} +} + +@article{anastasi2009energy, + title={Energy conservation in wireless sensor networks: A survey}, + author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario and Passarella, Andrea}, + journal={Ad Hoc Networks}, + volume={7}, + number={3}, + pages={537--568}, + year={2009}, + publisher={Elsevier} +} + +@article{yick2008wireless, + title={Wireless sensor network survey}, + author={Yick, Jennifer and Mukherjee, Biswanath and Ghosal, Dipak}, + journal={Computer networks}, + volume={52}, + number={12}, + pages={2292--2330}, + year={2008}, + publisher={Elsevier} +} + +@article{rault2014energy, + title={Energy efficiency in wireless sensor networks: A top-down survey}, + author={Rault, Tifenn and Bouabdallah, Abdelmadjid and Challal, Yacine}, + journal={Computer Networks}, + volume={67}, + pages={104--122}, + year={2014}, + publisher={Elsevier} +} + +@article{zhu2012survey, + title={A survey on coverage and connectivity issues in wireless sensor networks}, + author={Zhu, Chuan and Zheng, Chunlin and Shu, Lei and Han, Guangjie}, + journal={Journal of Network and Computer Applications}, + volume={35}, + number={2}, + pages={619--632}, + year={2012}, + publisher={Elsevier} +} + +@article{ammari2012centralized, + title={Centralized and clustered k-coverage protocols for wireless sensor networks}, + author={Ammari, Habib M and Das, Sajal K}, + journal={Computers, IEEE Transactions on}, + volume={61}, + number={1}, + pages={118--133}, + year={2012}, + publisher={IEEE} +} + +@article{rebai2014branch, + title={A Branch and Bound Algorithm for the Critical Grid Coverage Problem in Wireless Sensor Networks}, + author={Rebai, Maher and Le Berre, Matthieu and Hnaien, Faicel and Snoussi, Hichem and Khoukhi, Lyes}, + journal={International Journal of Distributed Sensor Networks}, + volume={2014}, + year={2014}, + publisher={Hindawi Publishing Corporation} +} + +@inproceedings{rebai2013linear, + title={Linear models for the total coverage problem in wireless sensor networks}, + author={Rebai, Maher and Snoussi, Hichem and Khoukhi, I and Hnaien, Faicel}, + booktitle={Modeling, Simulation and Applied Optimization (ICMSAO), 2013 5th International Conference on}, + pages={1--4}, + year={2013}, + organization={IEEE} +} + +@article{nayak2010wireless, + title={Wireless sensor and actuator networks}, + author={Nayak, Amiya and Stojmenovic, Ivan}, + journal={John-Whiley \& sons}, + year={2010}, + publisher={Wiley Online Library} +} + +@article{li2011transforming, + title={Transforming complete coverage algorithms to partial coverage algorithms for wireless sensor networks}, + author={Li, Yingshu and Vu, Chinh and Ai, Chunyu and Chen, Guantao and Zhao, Yi}, + journal={Parallel and Distributed Systems, IEEE Transactions on}, + volume={22}, + number={4}, + pages={695--703}, + year={2011}, + publisher={IEEE} +} + +@inproceedings{liu2014generalized, + title={A generalized coverage-preserving scheduling in WSNs: A case study in structural health monitoring}, + author={Liu, Xuefeng and Cao, Jiannong and Tang, Shaojie and Guo, Peng}, + booktitle={INFOCOM, 2014 Proceedings IEEE}, + pages={718--726}, + year={2014}, + organization={IEEE} +} + +@inproceedings{wang2010preserving, + title={Preserving target area coverage in wireless sensor networks by using computational geometry}, + author={Wang, San-Yuan and Shih, Kuei-Ping and Chen, Yen-Da and Ku, Hsin-Hui}, + booktitle={Wireless Communications and Networking Conference (WCNC), 2010 IEEE}, + pages={1--6}, + year={2010}, + organization={IEEE} +} + +@inproceedings{cho2007distributed, + title={A Distributed node scheduling protocol considering sensing coverage in wireless sensor networks}, + author={Cho, Jaekyu and Kim, Gilsoo and Kwon, Taekyoung and Choi, Yanghee}, + booktitle={Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th}, + pages={352--356}, + year={2007}, + organization={IEEE} +} + +@inproceedings{quang2008algorithm, + title={An algorithm for sensing coverage problem in wireless sensor networks}, + author={Quang, Vinh Tran and Miyoshi, Takumi}, + booktitle={Sarnoff Symposium, 2008 IEEE}, + pages={1--5}, + year={2008}, + organization={IEEE} +} + + +@inproceedings{lin2010partitioning, + title={Partitioning sensors by node coverage grouping in wireless sensor networks}, + author={Lin, Chow-Sing and Chen, Chih-Chung and Chen, An-Chi}, + booktitle={Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on}, + pages={306--312}, + year={2010}, + organization={IEEE} +} + +@inproceedings{zaidi2009minimum, + title={On minimum cost coverage in wireless sensor networks}, + author={Zaidi, Syed Ali Raza and Hafeez, Maryam and Khayam, Syed A and McLernon, Desmond C and Ghogho, Mounir and Kim, K}, + booktitle={Information Sciences and Systems, 2009. CISS 2009. 43rd Annual Conference on}, + pages={213--218}, + year={2009}, + organization={IEEE} +} + +@article{dong2012distributed, + title={Distributed coverage in wireless ad hoc and sensor networks by topological graph approaches}, + author={Dong, Dezun and Liao, Xiangke and Liu, Kebin and Liu, Yunhao and Xu, Weixia}, + journal={Computers, IEEE Transactions on}, + volume={61}, + number={10}, + pages={1417--1428}, + year={2012}, + publisher={IEEE} +} + +@article{liu2010energy, + title={Energy conservation algorithms for maintaining coverage and connectivity in wireless sensor networks}, + author={Liu, L and Hu, B and Li, L}, + journal={IET communications}, + volume={4}, + number={7}, + pages={786--800}, + year={2010}, + publisher={IET} +} + +@inproceedings{aslanyan2013optimal, + title={Optimal node scheduling for integrated connected-coverage in wireless sensor networks}, + author={Aslanyan, Levon and Aslanyan, Hakob and Khosravi, Hamid}, + booktitle={Computer Science and Information Technologies (CSIT), 2013}, + pages={1--13}, + year={2013}, + organization={IEEE} +} + diff --git a/Model.pdf b/Model.pdf new file mode 100644 index 0000000..ef17825 Binary files /dev/null and b/Model.pdf differ diff --git a/R/ASR.pdf b/R/ASR.pdf new file mode 100644 index 0000000..7616cd1 Binary files /dev/null and b/R/ASR.pdf differ diff --git a/R/ASR200.pdf b/R/ASR200.pdf new file mode 100644 index 0000000..3266490 Binary files /dev/null and b/R/ASR200.pdf differ diff --git a/R/CR.pdf b/R/CR.pdf new file mode 100644 index 0000000..28adb4c Binary files /dev/null and b/R/CR.pdf differ diff --git a/R/CR200.pdf b/R/CR200.pdf new file mode 100644 index 0000000..fc132f0 Binary files /dev/null and b/R/CR200.pdf differ diff --git a/R/EC50.pdf b/R/EC50.pdf new file mode 100644 index 0000000..bc12b05 Binary files /dev/null and b/R/EC50.pdf differ diff --git a/R/EC95.pdf b/R/EC95.pdf new file mode 100644 index 0000000..2072c61 Binary files /dev/null and b/R/EC95.pdf differ diff --git a/R/LT50.pdf b/R/LT50.pdf new file mode 100644 index 0000000..bf4f794 Binary files /dev/null and b/R/LT50.pdf differ diff --git a/R/LT95.pdf b/R/LT95.pdf new file mode 100644 index 0000000..92fa9dd Binary files /dev/null and b/R/LT95.pdf differ diff --git a/R/LTALL.pdf b/R/LTALL.pdf new file mode 100644 index 0000000..e8f654e Binary files /dev/null and b/R/LTALL.pdf differ